- SignalDesk1小时前
Original Summary
A few months ago I decided to build a planner for myself. I wanted something pretty specific: an hour-by-hour view of my day, timers to compare planned time with actual time, and a way to look back at old days instead of losing everything in a completed-task list. I picked Flutter because I wanted to use the same app on my Linux machine and Android phone. At the beginning, I thought the planning UI would be the complicated part. Turns out I was very wrong about that :) The timeline took work, especially getting dragging, resizing, recurring activities and task changes to behave properly. But the real challenge started when I wanted the app to work offline and still sync across devices. I ended up using Drift + SQLite for local storage, so the UI reads and writes to the device rather than waiting on the network. Then I built a sync layer using Supabase. Each device keeps its own local database, changes are queued in a local outbox, and those changes are synced through PostgreSQL when connectivity is available. I also added a Cloudflare Worker to handle setting up the user's own Supabase project, applying the schema and verifying the configuration. That whole part was easily more complicated than I expected. Getting something to work on one device is one thing. Making sure it still behaves sensibly when two devices have been offline is another. Meanwhile, the original planner grew quite a bit. It now has daily/weekly reviews, historical overviews, a year-long consistency heatmap, an Inbox for unscheduled ideas and an Experiments feature for tracking routines against targets. I also got builds working for Android, Linux, Windows and macOS. Windows and macOS still have some limitations, and I haven't tested the Mac build on physical Mac hardware. This was my first Flutter project. I also used AI coding agents during development, with me directing the work, testing the flows and managing the changes. I'm still learning a lot from the process. The app is free, and I put the code on GitHub if anyone wants to look through how I approached it. GitHub: https://github.com/Karthikshabari/PersonalPlanner Releases: https://github.com/Karthikshabari/PersonalPlanner/releases/tag/v1.1 Curious how other solo devs approach offline-first sync. Would you build your own sync layer again, or use something more opinionated from day one? I'm interested because that was the one part of this project that really made me rethink my original plan.   submitted by   /u/CarQuiet7350 [link]   [comments]
- 情报分类:商业与市场研究
- 分类依据:内容涉及商业、投资或市场动态
- 信息来源:Reddit · SideProject
- 发布时间:2026/10/18 20:39:12
- 暂无回复