A minimalist open-source and free todo app for iOS, Android, macOS & web.
- iOS: App Store
- Android: Google Play Store
- macOS: App Store (only for Apple Silicon Macs)
- web (PWA): todoaholic.com
Manage tasks cross-platform in real-time. No need to refresh the browser if you made a change through the mobile app. Everything syncs across all of your devices in real-time automatically.
Create custom lists (ex. shopping list, bucket list, reading list, movie list).
Intuitive gestures to cross out, move, remove and edit tasks.
- Tap a task to cross it of your list
- Slide a task to the right to move it to the next day
- Slide an undone task to the left to edit it
- Slide a done task to the left to delete it
- Slide a list in the drawer to the left to edit or remove it
Task timeline. Get an overview of what you have going on in the coming days.
Offline support for the mobile and desktop apps.
Keyboard shortcuts for desktop and web.
- Navigate the day you are viewing on the home screen with the left and right arrow keys (current date with arrow down, one week forward with arrow up)
- Press "A" or "+" on the task or custom list screen to quickly add a task
- Press "H" to go "home" and view your current tasks
- Press "T" to view the timeline
- Press "P" to view your profile
- Calendar integration
- Recurring tasks (tasks that repeat every day, week or month)
- Sign in with Apple & Google
- Reordering tasks is not working properly for now.
Auth: Firebase Auth
DB: Firestore
-
Composite indexes on collection ID "todos":
- date Ascending, isDone Ascending, order Ascending
- date Ascending, order Ascending, isDone Ascending
- date Ascending, order Ascending, isDone Descending
- isDone Ascending, date Ascending
- isDone Ascending order Ascending
Firebase Cloud Functions
Custom schedule function that runs once every week to check for users that have been inactive for three months and removes them. Their user data is then removed by this extension: Firebase Delete User Data Extension.
A GitHub Action automatically builds the Flutter iOS app with Fastlane, and deploys it to TestFlight throught the App Store Connect API when there is a push to the master branch or a PR merge.
A GitHub Action automatically builds the Flutter Android app bundle, and deploys it to Google Play Store Internal Test Track with Fastlane, when there is a push to the master branch or a PR merge.
A GitHub Action automatically builds the Flutter web app, and deploys it to Firebase Hosting when there is a push to the master branch or a PR merge. There is also a GitHub Action that deploys a preview of the app for the PR for testing before you merge to master.