Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Collaqr

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.

What's real and verified right now

  • Postgresusers and projects tables, 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

What's honestly NOT real yet

  • 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.

Getting GitHub OAuth working (the one manual step)

  1. Go to https://github.com/settings/developers → "New OAuth App"
  2. Application name: anything (e.g. "Collaqr Dev")
  3. Homepage URL: http://localhost:5173
  4. Authorization callback URL: http://localhost:5000/api/auth/github/callback
  5. Copy the Client ID, and generate + copy a Client Secret
  6. Paste both into server/.env as GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET

Run it locally

1. Database:

createdb collaqr

2. 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 dev

3. Frontend:

cd client
npm install
cp .env.example .env
npm run dev

Open http://localhost:5173.

Hosting it somewhere other than your machine

The code is already written to support this — nothing is hardcoded to localhost:

  • Backend reads PORT, DATABASE_URL, and CLIENT_URL from environment variables. CLIENT_URL can 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: true and sameSite: none when NODE_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_URL must 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.

Build order status

  • 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages