Built because the problem
was genuinely annoying.

ToDo's AI started as a personal fix for a specific frustration. It's still that, just more polished.

It started with a missed deadline. Not because I forgot — but because the email that mattered got buried under a wave of newsletters, shipping notifications, and LinkedIn updates. By the time I found it, it was too late.

The obvious fix was to be more organized. Check email more often. Use filters. Star things. But none of that actually worked — the volume of email is just too high to manually triage, and every system I tried required more effort than the problem itself.

So I started building something. The idea was simple: connect Gmail, let an AI read everything, and surface only the tasks that actually need my attention. No manual entry, no re-reading, no sticky notes.

The first version was a Python script that ran on a Raspberry Pi and dumped tasks into a text file. It worked well enough that I kept using it every day. Then I rewrote it properly — a real backend, a real API, a real iOS app. That's what this is.

It's not trying to replace email. It's not trying to be a project management tool. It's one specific thing: read your Gmail and tell you what you need to do. That's the whole product.

A few things we won't compromise on

01

Privacy isn't a feature, it's a requirement

Email is personal. We process it with a model running on our own servers — your inbox contents are never sent to OpenAI, Google's AI APIs, Anthropic, or any other third-party AI provider. That's not a marketing claim, it's how the system is built.

02

It should work without babysitting

The whole point is that you shouldn't have to think about it. If the app requires you to manually tag emails, adjust settings constantly, or review every single suggestion, it's failed at its job. The AI should handle the tedious parts — that's why it's there.

03

Simple beats clever

There's a version of this app with seventeen filter options, custom AI prompts, and a dashboard showing you statistics about your email habits. We're not building that. One view, sorted by priority, with the things you need to do today at the top.

04

It should improve over time

An AI that works the same on day 1 and day 365 isn't very useful. Every time you confirm or reject a task, that signal makes the system more accurate for you specifically. The goal is that after a few weeks, it rarely misses anything important.

How it's built

Nothing exotic. Boring choices, done carefully.

Backend

Python + FastAPI

The API layer that handles auth, email sync, and task storage. Runs on our own server hardware.

AI

Local Ollama

A local LLM running on-premise processes email content. Nothing leaves our infrastructure for AI inference.

Database

PostgreSQL

Tasks, categories, feedback, and user data stored in a relational database with encrypted credentials.

Email access

Gmail API

Read-only access via Google OAuth 2.0. Incremental sync via Gmail history IDs — only new emails are fetched.

Queue

Celery + Redis

Email processing runs asynchronously in the background so the app stays fast even during large syncs.

iOS app

Swift + SwiftUI

Native iOS app — no web views, no cross-platform framework. Built to feel like a real iPhone app.

We read everything.

Questions, feedback, bug reports — send them to support@todosai.net. If something isn't working or you have an idea, we want to know.

Visit support