Group task manager where you describe what needs doing in plain language — a multi-agent AI system handles the rest, and a shared e-ink display shows pending tasks 24/7 without opening an app.
- Cloudflare end-to-end deployment guide:
DEPLOY_CLOUDFLARE.md
Multi-agent AI orchestration (LangGraph) — A Supervisor routes requests across four specialized agents: Task, Calendar, Weather, and Notification. One input like "Pick up kids Saturday morning" simultaneously creates a task, checks the weather forecast, and schedules a reminder.
Group-first task coordination — Tasks are scoped to groups, not just individuals. Public tasks sync to all members in real time. Groups are joined by a 4-digit invite code — no account linking required.
Physical e-ink display (planned) — An ESP32 polls the API every 2 minutes and renders the group's pending tasks on a 7.5" e-ink screen. No app, no notifications — tasks are just always visible.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, React Router v7, TanStack Query v5 |
| UI | Tailwind CSS v4, shadcn/ui |
| Backend | Hono.js (Node.js) |
| Database | Neon (Serverless PostgreSQL), Drizzle ORM |
| Auth | Better Auth — email/password + Google OAuth |
| AI | OpenAI GPT-4o / DeepSeek (via AIHubMix), Whisper STT |
| AI Orchestration | LangGraph — Supervisor + multi-agent |
| Hardware | ESP32, GxEPD2 e-ink driver |
- Create groups with auto-generated invite codes
- Join by 4-digit code — no account linking required
- Role-based permissions:
owner/member
- Personal (private) and group (shared) tasks in a unified feed
- Priority levels, due dates, fuzzy time segments (morning / afternoon / evening / all-day)
- Recurring tasks: daily, weekly, monthly, yearly with custom rules
- Task assignment within a group
-
Natural language input — describe tasks in plain language
-
Multi-agent system built with LangGraph:
Agent Responsibility Supervisor Routes intent to the right agent(s) Task Agent Create, query, modify, complete, delete Calendar Agent View day schedule, find free time slots Weather Agent Context-aware info for outdoor/travel tasks Notification Agent Schedules reminders based on task time + weather
- ESP32 polls
/api/devices/{id}/tasksevery 2 minutes - Renders group tasks on a 7.5" e-ink screen (800×480, GxEPD2)
- Deep sleep between refreshes
┌──────────────────────────────────────────────────┐
│ Client Layer │
│ React Web (Vite) Mobile App (planned) │
└──────────────────┬───────────────────────────────┘
│ HTTP
┌──────────────────▼───────────────────────────────┐
│ Hono.js API (Node.js) │
│ │
│ ┌───────────────────────────────────────────┐ │
│ │ Multi-Agent System │ │
│ │ Supervisor ──► Task Agent │ │
│ │ ──► Calendar Agent │ │
│ │ ──► Weather Agent │ │
│ │ ──► Notification Agent │ │
│ └───────────────────────────────────────────┘ │
└──────────────────┬───────────────────────────────┘
│
┌─────────▼──────────┐
│ Neon PostgreSQL │
└────────────────────┘
┌──────────────────────────────────────────────────┐
│ Hardware Layer (planned) │
│ ESP32 ──► HTTP GET /api/devices/{id}/tasks │
│ ──► 7.5" e-ink display (GxEPD2) │
└──────────────────────────────────────────────────┘
- Node.js 18+, pnpm
- Neon PostgreSQL database (free tier works)
- OpenAI API key or AIHubMix key (supports DeepSeek, recommended for CN users)
packages/server/.dev.vars
DATABASE_URL=postgresql://...
BETTER_AUTH_SECRET=any-random-string
BETTER_AUTH_URL=http://localhost:3000
RESEND_API_KEY=re_...
# Pick one:
OPENAI_API_KEY=sk-...
# or
AIHUBMIX_API_KEY=...
AIHUBMIX_BASE_URL=https://aihubmix.com/v1
AIHUBMIX_MODEL_NAME=deepseek-v3.2 # optional, this is the default
packages/web/.env
VITE_API_BASE_URL=http://localhost:3000pnpm install
pnpm -C packages/server db-push
pnpm -C packages/server dev # backend → localhost:3000
pnpm -C packages/web dev # frontend (new terminal)pnpm -C packages/server test- Voice input — Whisper STT (server pipeline complete, frontend UI pending)
- Mobile app — Expo / React Native
- ESP32 e-ink display
- Push / SMS notifications
- Production deployment
MIT