Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Post your project, name the role and the hours, and team up with another Tufts student.
BusinessTypeScript · HTMLGitHub @ben-silvOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Project Pickup is a Tufts-only app where students post app and website projects and ask classmates for one scoped role ("UI/UX design · 3 screens · ~5 hrs"). Helpers send an offer, the owner accepts or declines, they chat, and when the work ships the owner leaves a credit note that shows up on the helper's profile.
Stack: Next.js 15 (App Router) · React 19 · TypeScript · Supabase (Postgres, Auth, Realtime) · Row Level Security · Zod · Vitest · Playwright · GitHub Actions · Vercel
Browser ──▶ Next.js middleware (refreshes session, guards /browse /post /messages /profile)
│
├─ Server Components ──▶ Supabase as the signed-in user ──▶ Postgres + Row Level Security
├─ Server Actions (Zod-validated) ──▶ inserts / rpc(accept_offer, complete_role, …)
└─ Client Components ──▶ Supabase Realtime (new messages)
Decisions worth knowing:
SECURITY DEFINER function that checks the caller. Users have no UPDATE permission on those columns, so the rules can't be skipped.auth.users refuses to create the account anyway.src/app/ pages: landing, sign-in, auth callback, (app)/browse|post|messages|profile
src/components/ landing sections, app shell, shared pieces
src/lib/ schemas (Zod), vocab, auth logic, Supabase clients
supabase/migrations database schema, access rules, workflow functions
tests/unit · tests/db · tests/e2e
design/ approved screens from Claude Design (the spec for Phase 2)
Requires Node 20.9+ (or the Docker command below).
npm install
cp .env.example .env.local # then fill in the two Supabase values
npm run dev # http://localhost:3000
With Docker on Windows, from the project folder:
docker run -it --rm -v "%cd%":/app -v /app/node_modules -w /app -p 3000:3000 -e WATCHPACK_POLLING=true node:22 bash
npm install && npm run dev
| Command | What it does |
|---|---|
npm run dev | Dev server with hot reload |
npm run check | Lint + typecheck + unit tests |
npm run test:db | Database access-rule tests (needs DATABASE_URL, see below) |
npm run test:e2e | Builds the site and runs Playwright on desktop and phone |
npm run build | Production build (shows bundle sizes) |
npm run test:db wipes and rebuilds the database it points at, so use a throwaway one:
docker run -d --name pickup-pg -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres:16
DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres npm run test:db
supabase/migrations/20261022000000_core_schema.sql → Run.anon public key into .env.local.http://localhost:3000 (change to your Vercel URL after deploying)http://localhost:3000/auth/callback and, later, https://<your-site>/auth/callbackThen sign in at /sign-in with your @tufts.edu email.
Push to GitHub, import the repo in Vercel, add the two NEXT_PUBLIC_SUPABASE_* variables (and NEXT_PUBLIC_SITE_URL), deploy, then add the Vercel URL to Supabase's Site URL and Redirect URLs.
design/Feed.dc.html)design/Project.dc.html)design/Post.dc.html)design/Messages.dc.html)design/Profile.dc.html)omni-moderation-latest) before saving. Refuse clearly abusive text, auto-file a report for borderline text, let messages through if the API is down. Needs OPENAI_API_KEY (Sensitive) in Vercel and a privacy note.CLAUDE.md holds the design system, architecture and code rules, plus a recipe for building each Phase 2 screen. Claude Code reads it at the start of every session.