ToDev List

ToDev List

mobile & web · Founder Aug – Oct 2026

ToDev is my planner for freelancers: the week's tasks, the client projects they belong to and the invoices that come out of them, on iOS, Android and the web. With version 5, started in August 2026, I rebuilt every part of it: the iOS and Android app, the web app, the backend and the website. The first version, from 2020, has its own entry.

ToDev 5 on iPhone and Android: the week view on both, and the Today screen with the projects active this week

Week on iPhone and Android, and Today on iPhone.

The rebuild replaced a product people were already using. The new backend took over the existing database, so every account, task and invoice came across. ToDev 5 replaced the old app in place on the App Store and Google Play, and the new web app kept the old one's address and install manifest, so a copy installed on a home screen updates itself instead of turning up as a second app. Old links still open the right page.

The app is organised around Today, Week, Projects and Money, and on iPad it splits into a list and a detail pane. Money keeps invoice records, payments and expenses per client, and exports them as CSV.

ToDev 5 web app: the Money page with pending and paid income, expenses and a table of invoice records by client

Money in the web app.

Sign-in works with email, Google or Apple. The Business and Premium plans are sold through Stripe on the web and as in-app subscriptions on iOS and Android. The server confirms every store purchase itself, and an account is never billed through both at once.

Architecture

One Expo codebase builds the iOS and Android apps, with Expo Router for navigation and EAS to build and submit both. In-app subscriptions go through RevenueCat.

ToDev 5: the Expo app and the React web app call the FastAPI API on Railway, which uses PostgreSQL and a file bucket, verifies Google and Apple sign-in, and talks to Stripe, RevenueCat and Resend ToDev 5: the Expo app and the React web app call the FastAPI API on Railway, which uses PostgreSQL and a file bucket, verifies Google and Apple sign-in, and talks to Stripe, RevenueCat and Resend

ToDev 5's clients, API and the services it calls.

The web app is a separate React app built with Vite. Caddy serves it and passes its API calls to the backend over Railway's private network, so the browser talks to a single origin. The web app and the Expo app share TypeScript packages from the same repository: the web app checks every API response against shared Zod schemas, and both clients sort tasks with the same rule, which had drifted while each kept its own copy.

The backend is a FastAPI API on Railway with PostgreSQL, and Alembic migrations run before every deploy. It receives webhooks from Stripe and RevenueCat, sends email through Resend and keeps invoice attachments in a Railway bucket. Railway deploys the API and the web app from GitHub once CI passes. This replaces the NestJS API on EC2 and the DigitalOcean database that ran the 2020 version.

The website is an Astro site on Railway, with its colours taken from the app repository's brand tokens.

Get it on the App Store or Google Play, use it on the web at todev.app, or see the full project at todevlist.com.