Real-time developer collaboration platform, following the documented 20-step build order — now through Steps 05-08 (auth, projects, a real editor) plus a landing page and pricing UI added outside that doc at your request.
- Postgres —
usersandprojectstables, real SQL migrations - GitHub OAuth login — code is real and complete, but needs YOUR GitHub OAuth app credentials to actually run (see below — this is the one piece that could not be tested inside the build sandbox, since it requires a real GitHub App belonging to you)
- Projects with real shareable links — create a project, get a real
URL like
/p/my-project-x7k2, anyone with that link can open it - A real code editor — Monaco, the actual editor engine behind VS Code, not a plain textarea. Supports 16 languages out of the box (syntax highlighting — running/executing the code is not built yet)
- Autosave — typing in the editor saves to Postgres ~0.7s after you stop typing; refresh the page and your code is still there
- A landing page with GitHub sign-in and three pricing tiers
- Payments. The Free/Pro/Team cards on the landing page are real UI, but Pro/Team buttons are disabled — there's no Stripe (or similar) account connected. That needs to be YOUR account (your bank details, your business info) — I can wire the code to it once you have one, but can't create it for you.
- Live multi-cursor collaborative editing. Right now a project is one shared document — reload and you see the latest saved version. Multiple people typing at the exact same moment can overwrite each other. True conflict-free simultaneous editing (Google-Docs style) is Step 14 in the doc (Yjs/CRDT) — a deliberately separate, harder step.
- Running/executing code. The editor supports any language for editing with proper syntax highlighting. Actually running that code safely needs a sandboxed execution service — a real security-sensitive system on its own, not built here.
- Go to https://github.com/settings/developers → "New OAuth App"
- Application name: anything (e.g. "Collaqr Dev")
- Homepage URL:
http://localhost:5173 - Authorization callback URL:
http://localhost:5000/api/auth/github/callback - Copy the Client ID, and generate + copy a Client Secret
- Paste both into
server/.envasGITHUB_CLIENT_IDandGITHUB_CLIENT_SECRET
1. Database:
createdb collaqr2. Backend:
cd server
npm install
cp .env.example .env
# edit .env: DATABASE_URL, and GITHUB_CLIENT_ID/SECRET once you have them
node src/db/migrate.js
npm run dev3. Frontend:
cd client
npm install
cp .env.example .env
npm run devOpen http://localhost:5173.
The code is already written to support this — nothing is hardcoded to localhost:
- Backend reads
PORT,DATABASE_URL, andCLIENT_URLfrom environment variables.CLIENT_URLcan be a comma-separated list if you have more than one frontend origin (e.g. a preview URL and a production URL). - Session cookies automatically switch to
secure: trueandsameSite: nonewhenNODE_ENV=production, which is what's required for a cookie to work when your frontend and backend are on different domains (very common in hosted setups — e.g. frontend on Vercel, backend on Render). - Frontend reads
VITE_API_URL— point it at your deployed backend URL when you build the client for production. GITHUB_CALLBACK_URLmust exactly match what you register in your GitHub OAuth App — update both when you deploy.- You'll need a hosted Postgres (Neon, Supabase, Railway, etc.) and put
its connection string in
DATABASE_URL.
- Step 01 — React + Vite + Node project structure
- Step 02 — Node + Express backend
- Step 03 — PostgreSQL (via node-postgres — see prior note on Prisma)
- Step 04 — Real User model + full CRUD
- Step 05 — GitHub OAuth (code complete; needs your credentials to run)
- Step 06 — Project CRUD (real, with shareable links)
- Step 13 (pulled forward) — Monaco editor, multi-language
- Step 09 — Real-time presence
- Step 11 — Persistent room chat
- Step 14 — Yjs collaborative editing
- Not in the doc — payment provider integration (needs your account)
See the full documentation for the rest of the roadmap.