- Title
- Naiya
- Role
- Full-stack
- Year
- 2025
To-do lists and time blocking fail for the same reason: your tasks never sync with your actual time.
The problem
I kept bouncing between a to-do list and a calendar, and they never agreed with each other. So I built Naiya to collapse the two. You dump your life at it, by voice or text, and it turns that into a full week that accounts for classes, deadlines, social stuff, exercise, and energy. When the week falls apart, which it always does, it re-plans instead of leaving you with a schedule that's already wrong.
The architecture decision
The obvious build is a pure LLM. I split it instead: DeepSeek-V3 handles the genuinely ambiguous part, pulling structured events out of natural language, and a plain TypeScript engine does the scheduling. That cut inference cost by 90% and latency by 60% against the pure-LLM version.
It's a rule I keep coming back to: use the model for the part that's actually ambiguous, use code for the part that has a right answer.
Stack TypeScript, PostgreSQL, Supabase, DeepSeek-V3, Next.js