https://quiqueporta.com/don3txt/
A mobile application for managing tasks based on the todo.txt format, designed for users who prefer plain text, full data ownership, and simple workflows.
- Create tasks with automatic parsing of projects (
+name), contexts (@name) and metadata (key:value) - Complete/uncomplete tasks with a single tap. The completion date is assigned automatically. A snackbar with Undo appears after completing a task
- Delete tasks from the three-dot menu on each task, with a snackbar and Undo to restore
- Archive completed tasks to
done.txtin the same directory as the activetodo.txt - Pull-to-refresh to reload tasks from disk by swiping down
- Priorities from
(A)to(Z)following the todo.txt standard - Creation dates assigned automatically when a task is created
- Due dates (
due:YYYY-MM-DD) with a built-in calendar picker - Threshold dates (
t:YYYY-MM-DD) with a calendar picker — tasks with a future threshold date are automatically hidden from all views except Recurring - Visual tag pickers for projects (
+name) and contexts (@name) — tap+or@in the editor to browse existing tags as selectable chips, or create new ones. Compatible with manual typing: tags entered in the text field merge with those selected via UI without duplicates
- Flexible recurrence: the next date is calculated from the completion date (e.g.
rec:2w) - Strict recurrence: the next date is calculated from the original threshold date (
t:) (e.g.rec:+2w). If there is not:, it falls back to flexible recurrence - Supported units: days (
d), weeks (w), months (m), years (y) - Visual picker to configure recurrence when creating a task
- When a recurring task is completed, the next occurrence is created automatically with the new date
- Inbox: shows all pending tasks
- Today (default view): shows tasks due today or earlier (overdue), with count badges in the sidebar
- Upcoming: shows tasks due from tomorrow up to N days ahead, with a count badge and period indicator (e.g. "Upcoming · 7d"). The period is configurable in settings (3, 7, 14 or 30 days)
- My Projects: filters by project (
+name), generated dynamically from pending tasks. Collapsible section in sidebar - My Contexts: filters by context (
@name), generated dynamically from pending tasks. Collapsible section in sidebar - Recurring: shows all recurring tasks (with
rec:), including those with a future threshold date - Completed: shows all completed tasks sorted by completion date (newest first)
- Search: free-text search across tasks in any view, accessible from the AppBar search icon
- Works with standard plain-text
todo.txtfiles - Select an existing file from any location on the device
- Create a new file in a custom location
- Restore to the default file at any time
- Compatible with synchronisation tools such as Syncthing, Dropbox, etc.
- Theme: System (default), Light or Dark — Material Design 3
- First day of the week: Monday or Sunday (affects the date picker)
- Upcoming days: period for the Upcoming view (3, 7, 14 or 30 days)
- todo.txt file path: configurable from settings
The app follows the todo.txt standard. Examples:
Call Mom
(A) Call Mom
(A) 2011-03-02 Call Mom +Family @phone
x 2011-03-03 2011-03-01 Review PR +Project @github
Buy milk due:2024-01-15
Pay rent due:2024-02-01 rec:1m
Review report due:2024-03-01 t:2024-02-25 rec:+1m
| Component | Format | Example |
|---|---|---|
| Completion | x at the start |
x 2024-01-16 ... |
| Priority | (A) to (Z) |
(A) Urgent task |
| Creation date | YYYY-MM-DD |
2024-01-15 Task |
| Project | +name |
+Family |
| Context | @name |
@phone |
| Due date | due:YYYY-MM-DD |
due:2024-01-20 |
| Threshold date | t:YYYY-MM-DD |
t:2024-01-18 |
| Recurrence | rec:[+]Nu |
rec:2w, rec:+1m |
| Generic metadata | key:value |
effort:high |
- Flutter >= 3.9.2
- Android SDK (Android only for now)
flutter pub getflutter testflutter build apk --debugThe APK is generated at build/app/outputs/flutter-apk/app-debug.apk.
flutter build apk --releaseThe APK is generated at build/app/outputs/flutter-apk/app-release.apk.
flutter runflutter installOr directly with adb:
adb install build/app/outputs/flutter-apk/app-release.apklib/
├── main.dart
├── domain/ # Value Objects, Aggregates, pure functions
├── infrastructure/ # Repository: file read/write
├── application/ # Reactive state (ChangeNotifier)
└── ui/ # Theme, screens and widgets
