The Founder's Problem
Kanbi Board
You take notes everywhere, meetings, calls, random ideas, but none of it becomes action. You spend 20 minutes daily manually converting notes into tasks. Context gets lost. Priorities get buried. Your productivity leaks through the cracks between tools.
Timeline
18 days
Solo sprint · full ownership
Target User
Solo founders & Developers
Performance
Task extraction in <3 seconds, AI failover in <500ms

Why Alternatives Fell Short
- Note apps don’t do tasks. Task apps don’t do notes. You’re stuck toggling between both.
- Copy-paste loses formatting, links, and context. You end up with flat, meaningless task titles.
- No AI reliably understands unstructured notes. Most tools choke on anything that isn’t a checklist.
What I Built
AI task extraction with dual-provider failover (Gemini + Groq) for 95%+ accuracy on messy input
Drag-and-drop Kanban board with optimistic UI updates for instant feedback
Supabase Row Level Security ensuring each user sees only their data
Stripe subscription integration (test mode) to prove production-ready payment flows
Tech Stack & Why
Next.js 16
App Router for clean server components. Faster TTFB than Pages Router.
Supabase
Free PostgreSQL with RLS. Cheaper than Firebase and handles relational data properly.
Groq + Gemini
Groq for speed (800 t/s), Gemini for accuracy. Dual failover helps keep AI responses available during provider outages.
Stripe
Gold standard for SaaS billing. Better docs and SDK than any alternative.
The 3-Week Process
Database schema, Supabase RLS policies, Auth flow
AI integration + prompt engineering, Kanban UI
Stripe webhooks, Testing edge cases, Deploy
Lessons Learned
Prompt engineering took more time than expected - consistency is harder than speed.
RLS policies look simple on paper. They break in production if you only test with one user.
Stripe webhooks will fire duplicates. Idempotency keys are non-negotiable. Learned this with a double-charge scare.
Would Do Differently
Ship with a single AI provider. The dual-provider failover was premature optimization that added complexity with no visible benefit for users.