Progressive disclosure
Simplicity first. Recurrence rules, dependencies, attachments and activity logs are one scroll away in the detail sheet, never in the way of the task list.
About
TaskFlow started from a small frustration: most to-do apps want an account, a subscription and a copy of your data before they will show you a checkbox. This one asks for none of those and still does the planning work.
The idea
There are two moments that decide whether a task app helps you. The first is the half-second after you think of something — if capture is slow or fiddly, the thought is lost. The second is the moment you sit down to work — if the list has no shape, you spend your energy deciding instead of doing.
TaskFlow is built around those two moments. Capture is one sentence with natural-language parsing. Planning is a Today view that leads with what you missed, backed by an Eisenhower matrix, a board, a calendar and a focus timer for when the list itself is the problem. Everything else — projects, labels, dependencies, habits, analytics — exists to support those two moments, not to decorate them.
And it is deliberately local. No account, no sync service, no telemetry. Your task list is a private document; TaskFlow treats it that way.
| Name | TaskFlow |
| Version | 1.0.0 |
| Platform | Android 8.0+ (API 26–34) |
| Package | com.taskflow |
| Price | Free, no ads, no purchases |
| Account | None |
| Network | Not requested |
| Source size | 185 Kotlin files |
| Tests | 489 unit tests |
| Release APK | 2.5 MB |
Design principles
These are not aspirations on a wall — each one is visible in the shipped screens.
Simplicity first. Recurrence rules, dependencies, attachments and activity logs are one scroll away in the detail sheet, never in the way of the task list.
Every element earns its place. The floating add button appears only on screens where adding a task makes sense — never on Trash, Settings or a filter editor.
Writes go to a local database, so the interface reflects your intent immediately instead of waiting on a server round-trip.
Completing is reversible, deleting is undoable, and Trash holds everything for 30 days. No single tap can destroy work.
A task behaves the same in Today, in a project, in search results and on the board. Fixing "dead" affordances — checkboxes that did nothing — was a requirement, not a nicety.
Contrast, touch-target size, screen-reader labels and reduced motion were built in and corrected where they had been missed.
Accessibility
TaskFlow aims at WCAG 2.1 AA for colour contrast and interaction. Here is what that means in practice, including the things that had to be repaired.
If any part of the app is unusable with your setup, please report it as a bug: hello@taskflow.app. Include your Android version, the screen, and what your screen reader announced.
Engineering
A conventional, current Android stack — no exotic dependencies and nothing that phones home.
The entire UI is Compose with Material 3 on a custom design-token layer, so light/dark, accent colours and type scale are one theme object.
A versioned local database with fifteen tables and a real migration, plus an external-content full-text index over task titles and descriptions.
Scheduled work handles the daily rollup, the weekly review, trash cleanup and reminder re-arming; exact alarms fire individual reminders.
Repeat rules are real iCalendar RRULEs handled by a dedicated recurrence library, not a hand-rolled approximation — with correct count exhaustion.
Dependency injection throughout, and nineteen user preferences persisted on-device. No dependency reaches out to the network.
489 unit tests across 31 test classes, Android lint gated by a checked-in baseline, and both debug and release APKs built on every push.
Credits & contact
TaskFlow is an independent project. Bug reports, accessibility problems and feature arguments are all welcome — the last category especially if you can describe the moment in your day that the app gets wrong.
Product and interface design follow the TaskFlow specification. Visual design, iconography and this website use the app's own colour, radius and type tokens.
TaskFlow is built on open-source Android and Kotlin libraries, including AndroidX, Jetpack Compose and Material 3, Hilt, Room, WorkManager, DataStore, Coil, kotlinx-serialization and a recurrence library implementing RFC 5545. All are used under their respective open-source licences.
| Design tokens | Shared between app and site |
| Site stack | Static HTML, CSS, plain JS — no trackers |
| Analytics | None |
| Cookies | None (theme choice stays in local storage) |
Two pages, plain language, no dark patterns — because there is no data to be clever about.