Problem and solution
01/Problem
02/Solution
03/How it works
The system, end to end.
- 01next →
Watch
Inbox + calendar + notes via OAuth.
- 02next →
Model
Small persistent state of priorities.
- 03next →
Brief
Morning summary, ranked by you.
- 04next →
Act
Drafts replies, schedules focus blocks.
- 05loop
Reflect
End-of-day log + weekly review.
04/Architecture
Components and data flow.
How the moving parts fit together. Solid arrows are synchronous calls; dashed arrows are queued or batched.
- 01
Watchers (email / calendar / notes)
- 02
State store
- 03
Brief generator
- 04
Action executor
- 05
Reflection loop
- 06
Local LLM fallback
05/Technology
The stack.
- AI / ML
- Hosted LLMLocal GGUF fallbackEmbeddings for ranking
- Frontend
- Next.jsTailwind
- Backend
- TypeScripttRPC
- Database
- PostgresSQLite
- Infrastructure
- VercelCron jobs
- APIs
- GmailGoogle CalendarNotion
06/Engineering decisions
What we picked, and why.
- 01
Quiet by default
Choice
Only surface what's worth surfacing
Alternatives
- Always-on notifications
Why
Notification fatigue kills personal tools. Nimbus only speaks when there's something worth saying.
07/Evaluation
What we measured.
- 01
92%
Daily active
- 02
4.6/5
Brief usefulness
- 03
47%
Drafts accepted
08/Challenges
What almost broke us.
- 01
Privacy boundary
What happened
Cloud LLM saw personal context.
What we did
Added a local-only mode for sensitive accounts.
09/Results
Personal tool; used every day. Calendar density dropped 18% without missed commitments.
10/Future improvements
- ›Voice briefs
- ›Cross-account state
Have an interesting AI problem?
Let's build something.
If you're working on something that needs real AI engineering — not just a demo — let's talk.