Built for the All Things Agentic Hackathon (Google Cloud x Devpost, August 2026)
I run two companies, I have a family I actually want to spend time with, and I keep starting more side projects than any reasonable person should. Every morning, the same thing happened: I'd open my task list and burn twenty minutes just deciding what to do — and a chunk of what was on there didn't need a human at all. It just needed doing.
I wanted to build this for a while, then All Things Agentic Hackathon arrived in my mailbox and I decided to do it, I built Today Do. Here's what it does and how it's put together.
What it does
Every morning it plans my day out of a backlog of everything I could be doing - using deadlines, the priorities I've said out loud (like "this month I'm head down on project X," "today I just want to take it easy"), and whatever mood I'm in. Tell it in the chat, and it replans around that.
You can also define recurring, multi-step pipelines — send the invoices to my clients every month, for instance — where each step is either for you or for the agent. A human step waits for you, just like a normal to-do. An AI step runs on its own, and depending on how dangerous it is, either goes fully autonomous or stops and waits for your approval before doing anything out of the system.
The AI isn't only there to execute. It helps shape the work too: composing the day from a sentence, cutting a task down when it's too big, looking into why you keep putting something off instead of just nagging you about it.
How I built it
Full-stack TypeScript. Hono API on Bun, React frontend with HeroUI components, Better Auth for sign-in. Genkit orchestrates everything AI-related, including the MCP connections, with Gemini 3.5 Flash as the default model — deliberately a light model: most of what the model does here is small, bounded work, and a bigger model doesn't help much.
It all runs on Google Cloud: Cloud Build turns a push into an image and deploys it to Cloud Run through the GitHub integration, and app secrets live in Secret Manager, exposed to the container as env vars. Data is stored in a libSQL (SQLite) database hosted on the very generous free plan of Turso. MCP connection tokens, API keys, and anything else sensitive are encrypted before they ever touch the database.
The part I'm actually proud of
Today Do talks MCP in both directions.
It connects out to external MCP servers — right now, Gmail — so a pipeline step can draft an email as part of an automated workflow. And it exposes itself as an MCP server, so any agent you already use can control it directly. I've been having long, genuinely useful conversations with Claude Code about redoing my bathroom — materials, sequencing, what blocks what — and at the end of it, one sentence: put this in Today Do. It called the same tools my own in-app chat uses, and the whole plan landed as a real, ordered task list.
That's the task manager I actually wanted. Not one more place to type things into — a place that whatever agent I'm already talking to can hand things off to.
Challenges I ran into
Wiring up the Gmail MCP server took longer than I expected, and not for a technical reason — I had to register for Google's developer program first, which wasn't obvious going in, and cost me a chunk of a day I hadn't budgeted for it.
I also ran into a real bug in Genkit itself, around JSON Schema conversion, and ended up filing an issue and working around it in my own code in the meantime. Small thing, but it's the kind of thing you only find by actually building things.
What I learned
Good design comes before good code, every time — and that's true even, maybe especially, when you're racing a hackathon deadline and every hour spent not-coding feels like a mistake. It isn't.
And: use your own project from day one. If I hadn't been planning my actual mornings with this thing while building it, I wouldn't have found half of what needed fixing — and I don't think anyone else should trust a tool the person building it doesn't trust with their own day.
What's next
- Letting users choose which tools an MCP connection is allowed to expose, instead of a fixed list per server, and actually expanding the available servers
- Moving secret storage from an encrypted database column to Google Cloud's key management service properly
- A PWA with real mobile integration — share an email straight into Today Do, control it from Siri, get a push notification when something needs you
So... is this a problem you also have? The app's live — go poke at it... be gentle :).
Live app: https://today-do-968387508977.europe-west1.run.app

Top comments (0)