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
翻訳待ち
No updates detected yet. GitHub releases will appear here.
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 ↗"Vumbua" is Swahili for "discover". VumbuaAI is a conversational AI agent that helps early-stage entrepreneurs test customer and business-model assumptions using Blank and Dorf's Customer Discovery method. Founders chat with it like a coach; it updates a structured workspace (hypotheses, interview guide, evidence, decisions) and produces a Customer Discovery Evidence Report.
Core principle: the app helps founders discover and interpret evidence - it never manufactures evidence or makes decisions for them. The methodology is enforced in code (lib/rules.ts), not just in AI prompts.
| Layer | Technology | Files |
|---|---|---|
| Web application | Next.js 15 / React 19, responsive, keyboard-accessible | app/, components/ |
| Application backend | Next.js API route: session validation, rate limiting, business rules, agent loop | app/api/agent/route.ts, lib/rules.ts |
| AI service | Anthropic Claude via tool use (10 tools) | lib/agent-tools.ts, lib/prompt.ts |
| Data storage | Supabase Postgres + Auth with row-level security; browser fallback | lib/store.ts, supabase/schema.sql |
| Hosting | Vercel | - |
[Rules engine] note the AI must address.propose_hypotheses, add_interview_questions, record_evidence, record_assessment, recommend_next_action, etc.) to update the workspace - up to 8 tool rounds per message.| Rule | Enforcement |
|---|---|
| 1. No evidence, no validation | Statuses are computed by computeStatus(); the AI cannot set them. No real evidence = Untested. Validating recommendations without evidence are rejected. |
| 2. Behaviour over enthusiasm | Provisionally Supported needs 3+ supporting observations, 2+ interviews and at least one observed behaviour. Opinions alone cap at Evidence Emerging. Founder interpretations and simulated responses never count. |
| 3. Contradictions stay visible | applyRules() restores any contradicting evidence an AI assessment omits and notes it. Evidence Lab shows supporting and contradicting side by side. |
| 4. Traceability | AI-recorded evidence must quote an exact excerpt from the founder's own messages; assessments and recommendations may only cite existing evidence ids. |
| 5. Human-led decisions | AI hypotheses arrive as unapproved drafts; recommendations arrive as pending. Only the founder can approve, accept, reject or modify. |
| 6. Iteration | Revisions create a new version and preserve the original and its evidence in revision history. |
supabase/schema.sql -> Run.Create an API key at console.anthropic.com and set a monthly spend limit.
| Name | Value |
|---|---|
ANTHROPIC_API_KEY | your Claude key (server-only - never prefix with NEXT_PUBLIC_) |
ANTHROPIC_MODEL | optional, default claude-sonnet-5-5 |
RATE_LIMIT_PER_HOUR | optional, default 60 per user |
NEXT_PUBLIC_SUPABASE_URL | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon key |
Then redeploy.
Sign-in is on by default, so each user keeps a saved history across devices. For open access without accounts (sessions saved only in the visitor's browser), add NEXT_PUBLIC_REQUIRE_LOGIN=false in Vercel and redeploy.
VumbuaAI reads lib/knowledge.ts before every reply (currently the five-step Customer Discovery playbook: hypothesis, persona, validation, gate checks, MVP). Add new sections there to teach it more.
npm install
cp .env.example .env.local # fill in values
npm run dev # http://localhost:3000
npm test # business-rule and agent-guard checks
| # | Test | How to run it | Expected |
|---|---|---|---|
| 1 | Vague customer | Chat: "Everyone needs my app" | Rules engine note + AI asks for a specific segment and early adopters |
| 2 | Unsupported claim | Chat: "Customers will definitely buy it" | AI asks what customers have actually done; does not endorse |
| 3 | Leading question | Interview coach -> add "Would you buy our product?" (or ask the AI to review it) | Flagged hypothetical + solution-biased, with explanation and a better question |
| 4 | Mixed evidence | Evidence Lab -> record 3 supporting (one as observed behaviour) + 1 contradicting from 4 interviews | Both columns shown; contradiction visible in status, assessment and report |
| 5 | No interviews | Decision tab before recording evidence; or ask the AI to recommend a solution experiment | "No real customer evidence... remain Untested"; AI recommendation rejected by rules engine |
| 6 | Revision | Hypotheses -> Revise a tested problem hypothesis | New version active; original and its evidence kept in revision history |
| 7 | Full process | Get assessment -> accept recommendation -> Report | Structured report with next action; Download PDF / Markdown |
| 8 | AI failure | Tick "Demo: simulate AI outage", send a message | Message preserved, clear error, Retry button; untick and retry succeeds |
npm test runs automated checks for tests 1-6 and the agent guards (18 checks).
propose_hypotheses + approve/edit, computed statuses, autosave.lintText, priority ordering, six hypothesis types incl. value proposition, channel, revenue.lintQuestion + critique_question, edit/reorder/export, explanations.