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
A retrospective tool for small teams — real-time guardrails keep feedback constructive.
Translation pending
BusinessTypeScript · CSSGitHub @iiamriiitaOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
A small web tool for 2–5 person groups to give each other feedback (agile-retro
style). The starter picks a questionnaire and generates a share link; members
fill it in while the system gatekeeps for constructive feedback in real time;
once everyone is done the starter closes the session and the group reviews the
results together.
Built with Next.js (App Router) + TypeScript + Tailwind, Supabase
(Postgres + RLS + Realtime), and Google Gemini for moderation (and
coming-next AI summaries).
Phase 1 (this build): the core flow.Read the full README ↗A small web tool for 2–5 person groups to give each other feedback (agile-retro style). The starter picks a questionnaire and generates a share link; members fill it in while the system gatekeeps for constructive feedback in real time; once everyone is done the starter closes the session and the group reviews the results together.
Built with Next.js (App Router) + TypeScript + Tailwind, Supabase (Postgres + RLS + Realtime), and Google Gemini for moderation (and coming-next AI summaries).
Phase 1 (this build): the core flow.
lib/blocklist.ts) instantly flags blatant personal
insults, andPOST /api/moderate, Google Gemini) judges
constructive / emotional and returns a friendly rewrite suggestion.
Failures degrade to the keyword list and let the user through — the
gate never blocks on our outage.owner_token httpOnly cookie).Phase 2 (this build): select-to-comment + AI summary.
POST /api/comments). Anonymous mode never stores/returns author
names.POST /api/summarize, Google Gemini): summarizes the whole
session (de-identified, text only) into themes / positives / improvements /
concrete next steps as markdown, with multi-turn follow-up questions.Copy .env.example to .env.local and fill in:
cp .env.example .env.local
| Variable | Where it's used | Exposed to browser? |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | anon client + Realtime + server | yes |
NEXT_PUBLIC_SUPABASE_ANON_KEY | anon client + Realtime | yes |
SUPABASE_SERVICE_ROLE_KEY | server routes (privileged writes) | no |
GEMINI_API_KEY (optional) | /api/moderate | no |
The service-role and Gemini keys are server-only and never bundled into the client.
sessions.owner_tokenis likewise never exposed — the browser client is never granted access to thesessionstable.
Run the migration against your Supabase project. Either paste
supabase/migrations/0001_init.sql into the Supabase SQL editor, or with the
Supabase CLI:
supabase db push
This creates the retro_sessions, retro_participants, retro_answers,
retro_comments tables (prefixed so it can share a Supabase project with other
apps), the RLS policies, and enables Realtime on retro_comments.
npm install
npm run dev
Open http://localhost:3000, create a session, and open the share link
(/s/<session_id>) in another browser/incognito to fill it in.
Import the repo into Vercel, set the four environment variables in the project settings, and deploy. No extra config needed.
app/
page.tsx create-session form
s/[session_id]/page.tsx fill-in form (+ deadline countdown, moderation)
s/[session_id]/results/page.tsx grouped results + owner close
api/
sessions/route.ts create session (sets owner cookie)
sessions/[id]/close/route.ts close (owner-token gated)
answers/route.ts submit answers (open + not expired)
moderate/route.ts single-answer gatekeeping (Google Gemini)
lib/
supabase/{server,client}.ts service-role + anon clients
templates.ts 3 built-in questionnaires
blocklist.ts 中英 insult keyword list
owner.ts owner-token cookie helpers
types.ts
components/ form + results UI
supabase/migrations/0001_init.sql