

Btw, before installing on your server, you can try to use demo at https://demo.will-be-done.app/


Btw, before installing on your server, you can try to use demo at https://demo.will-be-done.app/


Hey! Yep, thanks for the kind words. I’m fully responsible for the architecture and system design. I spent a lot of time thinking this through, and how to build good local-first apps was on my mind even before AI (I built a note-taking app called Harika before and worked at RemNote).


Nah, it will very hard to do. I wanted it to be fast from the start, so I was playing with sync and how I store data in browser.


I actually agree with you. I was avoiding making doc the whole time, but as amount of features growth, readme is not enough. I will introduce a good doc soon. Thanks!


You still need to sign up to sync between devices. With the self-hosted version, you also create an account, but authentication and all synced data stay on your own server.
Offline-first means the app works without an internet connection; it doesn’t necessarily mean that no account is required. After sign up/sign in, you can use it offline without any problems.


It is just LWW per column. On each client I track last change of each field with current time(actually sysytemTime-counter-clientId to make time uniq). Then, when changes arrive to server, I compare previous clock time with new clock time from client. If client win, it overwrite server column time + value. No tracking causality for now, just current system time of the client.


Fixed. Thanks for the hint!


Oh yeah, it’s a long story!
My core idea is to build a task manager that will stay with me for the rest of my life. Because of that, my main requirement is for it to be fast even with a massive database. If I have 10k+ tasks saved over the years, it should still load and feel instant.
Another requirement is that it must be offline-first. I live in a country where the internet goes down pretty often, and I need my tasks to be available regardless of the server status.
Finally, I wanted a clean API so I could connect things like an MCP server or create tasks via Telegram.
I couldn’t find an existing app that met all these needs, here is a table where I compared all self-hosted apps that I found(in awesome self-hosted github):

Here is how my journey went:
This third approach finally solved all three requirements. It’s hard to find an open-source app that does this because this specific architecture is difficult to “cook” correctly. On top of the database speed, I also had to solve the sync problem, that should also somehow resolve conflicts while clients are offline, which I handled by building own sync layer with LWW CRDT per column.


I checked Planify - wow, it is a decent work. But as far as I see it misses web app, mobile mode (will be done can do it with PWA) and macOS/windows platforms.
Also, the killer feature of will be done - the planner mode. You can plan your tasks through week. It basically the main reason why I built it.

Also, I compared it will all others task managers that I found at self-hosted github (except Planify, it doesn’t relate to self-hosted)



Thanks for the feedback! You’re right that it’s not a 1:1 replacement for TickTick/Todoist yet. That is why I used the word ‘alternative’ rather than ‘replacement’ in the title.
The core functionality is already there, and I’m working toward 70–80% feature parity over the next year or two.
I am also glad to know what particular features you miss so they will be more in my focus


Yep, it’s on plan. Glad to hear!


Thanks! Not for now, but I am building it in a way that it will be pretty easy to add themes support


Thanks! I am already building this iteration for one year, and I enjoy it! Both development and daily usage


Oh, that’s interesting. Log in page as first page looks correct - once logged in you should always see your tasks on app launch.
But I think I should correct my manfest.json and hard-code open page to be /.


Thanks for the honest feedback!
Could you share what specifically makes it feel like a bloated todo app to you? Also, what deployment or distribution method would you prefer over Docker?


Yep, that’s actually what I am doing except moving task to next day. I am still not sure about automatic moving part, though I am doing this by hand. I will need to play with this auto-moving flow a bit and maybe will bring it as a setting option.
I also have some strong desire to make tui or just CLI, but don’t have resources for this right now.
Thanks for sharing your flow!


Yep, I agree too, it’s totally fair 👍
Thanks for your feedback!
Oh, that’s interesting. I recently changed the sync code, so that could be fixed. I will appreciate if you create an issue with more details, if you will try it again