mirror of
https://github.com/kuhyx/todo-app.git
synced 2026-07-04 11:43:10 +02:00
Flutter app for Android + Linux desktop. Captures ideas with per-keystroke local autosave to a CRDT-backed SQLite store (sqlite_crdt), and syncs through a private GitHub repo using per-device changeset files (conflict-free last-writer-wins merge). Includes GitHub OAuth device-flow sign-in with PAT fallback, a barebones notes list, and sync settings. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
What: toDo android and gnu/linux app
Why: I get an influx of ideas every now and then, whether on my pc or on my mobile, I would like to write them down quickly and store them both on local device and on some remote server to use them later
Functional requirements:
- Offline first, should work without internet at all
- Sync between mobile and pc seamlessly and resolve merge conflicts (suggestion in technical)
- Store those notes on remote private service (suggestion in technical)
- The same experience on both mobile and pc
- Option to export all notes to a single recoverable sync files
Using the app:
- When opening app show an input text where you can immediately write down the idea and it gets saved character by character to local device (no interruptions, immediate), after user clicks "save" sync it with other devices running this app and with remote services
- User can also open history of all available ideas with options to filter and sort them based on: a) when they were originally created b) when they were last modified c) alphabetically d) priority
- Option to tier ideas based on their priority
Technical requirements:
- Supports only markdown
- Same codebase for mobile and pc
- 100% test coverage
- Hardest available lint tools for toolstack
- For merge conflicts just use git ?
- For remote private service use private github gits? In any way the app should be 100% compatible with this remote service, the service itself should be free for small text files we will be using and it should be private
The most important part: I do not want to lose those ideas thats why I want them to be stored in so many distributed places (locally, between my devices and on remote services)