Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 92 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,109 @@
<div align="center">
<img width="150" height="150" src="https://raw.githubusercontent.com/CoderScreen/coderscreen/refs/heads/main/content/logo.png" alt="CoderScreen Logo">

<h1 align="center"><b>CoderScreen</b></h1>

<p align="center">
<strong>The modern technical hiring platform.</strong>
<img width="120" height="120" src="https://raw.githubusercontent.com/CoderScreen/coderscreen/refs/heads/main/content/logo.png" alt="CoderScreen Logo">

<h1><b>CoderScreen</b></h1>

<p>
<strong>The open-source platform for technical hiring.</strong><br/>
Live coding interviews, auto-graded assessments, and take-homes — in one place you can actually host yourself.
</p>

<p>
<a href="https://coderscreen.com"><strong>Website</strong></a> ·
<a href="QUICK_START.md"><strong>Self-host</strong></a> ·
<a href="https://discord.gg/THxVTKtcZy"><strong>Community</strong></a>
</p>

<div align="center">
<a href="https://coderscreen.com">
<strong>coderscreen.com »</strong>

<p>
<a href="https://github.com/CoderScreen/coderscreen/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat-square" alt="License: GPLv3">
</a>
<a href="https://github.com/CoderScreen/coderscreen/stargazers">
<img src="https://img.shields.io/github/stars/CoderScreen/coderscreen?style=flat-square&logo=github" alt="GitHub stars">
</a>
<a href="https://github.com/CoderScreen/coderscreen/pulls">
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs welcome">
</a>
</div>

<div align="center" style="margin-top: 16px;">
<a href="https://discord.gg/THxVTKtcZy">
<img src="https://img.shields.io/badge/Discord-Join%20our%20community-blue?style=for-the-badge&logo=discord" alt="Join our Discord">
<img src="https://img.shields.io/discord/1234567890?style=flat-square&logo=discord&label=Discord&color=5865F2" alt="Discord">
</a>
</div>
</p>
</div>

<br/>

CoderScreen is a collaborative code interview platform that enables real-time technical assessments with live code execution, multi-language support, and seamless candidate experience.
<!-- TODO: swap this for a real product screenshot or short GIF. It's the first thing people see — make it count. -->
<p align="center">
<img src="https://raw.githubusercontent.com/CoderScreen/coderscreen/refs/heads/main/content/logo.png" alt="CoderScreen product screenshot" width="800">
</p>

<br/>

## Why we built this

Hiring engineers is hard enough without fighting your tools. Most interview platforms are closed boxes: you can't see how they run candidate code, you can't shape them to your process, and you're stuck stitching together one tool for live interviews, another for take-homes, and a spreadsheet for everything else.

We wanted something different — a single platform that does live interviews, async screening, and take-homes, that runs candidate code transparently, and that you can read, fork, and host on your own infrastructure. So we built CoderScreen and made it open source.

If you've ever spent an evening reading through half-finished take-homes, or run an hour-long interview with someone who couldn't get past FizzBuzz, this is for you.

## What you get

**A real-time editor candidates actually enjoy.** Multiplayer editing with live cursors, powered by Yjs. Candidates join from a link — no accounts, no downloads, no "can you share your screen?"

**Code that runs, right there.** Execute in a secure sandbox and see `stdout`, `stderr`, and exit codes instantly. 20+ languages including TypeScript, Python, Go, Rust, Java, and C++, with multi-file projects and live browser previews for React, Vue, and Svelte.

**Screening that grades itself.** Build a coding assessment once, send candidates a link, and get scored results back automatically. Reuse questions from a shared library, weight the hard ones so they count for more, and get a single clear score per candidate — no rubric-wrangling.

**A window into how they think.** Replay every keystroke with code playback to see how a candidate got to their answer, not just where they landed. And since AI is part of real work now, you can watch how they prompt and iterate with the built-in assistant.

**Made yours.** Add your logo and colors, then track hiring metrics and spot where your process slows down.

## Self-hosting

CoderScreen is fully open source and self-hostable on Cloudflare. Grab the code and follow the **[Quick Start guide](QUICK_START.md)** to get an instance running locally or in production.

```bash
git clone https://github.com/CoderScreen/coderscreen.git
cd coderscreen
pnpm install
```

Self-hosting is something we're actively polishing, so if you hit a snag, come say hi in [Discord](https://discord.gg/THxVTKtcZy) — we're happy to help you get unstuck.

## Tech stack

CoderScreen is a [pnpm](https://pnpm.io) monorepo built with React, TypeScript, Cloudflare Workers, PostgreSQL, Drizzle ORM, and TailwindCSS.

### Apps

| App | What it is |
| ----------- | ------------------------------------------------------------------ |
| `web` | [React](https://reactjs.org) app with TanStack Router. |
| `api` | [Cloudflare Workers](https://workers.cloudflare.com) API with Hono.|
| `marketing` | [Next.js](https://nextjs.org) marketing site. |

# Self Hosting
### Packages

CoderScreen is available to self-host on Cloudflare. [See our quick start guide](QUICK_START.md) for more details.
| Package | What it is |
| ------------- | ------------------------------------------------------------------------------ |
| `ui` | Shared [React](https://reactjs.org) component library. |
| `db` | Shared [Drizzle ORM](https://orm.drizzle.team/) schema and client. |
| `email` | Shared email templates. |
| `common` | Shared utilities and types. |
| `scripts` | Operational and maintenance scripts. |
| `sandbox-sdk` | Code execution SDK for the sandbox (a fork of Cloudflare's sandbox-sdk). |

# Monorepo App Architecture
## Contributing

We use a combination of React, TypeScript, Cloudflare Workers, PostgreSQL, Drizzle (ORM), TailwindCSS throughout this pnpm powered monorepo.
We'd genuinely love your help — bug fixes, new features, better docs, or just telling us where things are confusing.

### Apps:
1. Fork the repo and branch off `main`.
2. Follow the [Quick Start guide](QUICK_START.md) to get set up.
3. Open a pull request and tell us what you changed and why.

- `web`: A [React](https://reactjs.org) web app with TanStack Router.
- `api`: A [Cloudflare Workers](https://workers.cloudflare.com) API with Hono.js.
- `marketing`: A [Next.js](https://nextjs.org) marketing site.
Got an idea or a question first? Start a [discussion](https://github.com/CoderScreen/coderscreen/discussions) or drop into our [Discord](https://discord.gg/THxVTKtcZy). And if the project is useful to you, a ⭐ goes a long way.

### Packages:
## License

- `ui`: A [React](https://reactjs.org) Shared component library.
- `db`: A [Drizzle ORM](https://orm.drizzle.team/) Shared database library.
- `common`: Shared utilities and types.
- `sandbox-sdk`: Code execution SDK for the sandbox environment. Fork of cloudflare's sandbox-sdk package.
CoderScreen is licensed under the [GNU General Public License v3.0](LICENSE).
Loading