Note on AI ussage: I’ve been developing this project for a year+, and this is my third attempt in three yeas; the first two failed because the technology for fast, offline-first apps wasn't ready. This time, I created my own method for local-first development and built a database that works for both the frontend and backend, so I can write one code for both of them. Also, I have over 10 years of experience as a developer and 4 years specializing in offline-first apps. Building these reliably requires specific expertise. I use Claude Code to help, but I review every line of code manually to ensure quality.
Download & installation
- Download for Windows
- Download for macOS
- Download for Linux
- For now, mobile users can install the PWA as a bookmark. Native mobile clients are coming soon.
You should also run the Docker server. Here is the easiest way:
docker run -d \
-p 3000:3000 \
-v will_be_done_storage:/var/lib/will-be-done \
--restart unless-stopped \
ghcr.io/will-be-done/will-be-done:latest
Why build another task manager?
My core idea is to build a task manager that will stay with me for the rest of my life. Because of that, one of my main requirements is that it stays fast even with a massive database. If I have 10k+ tasks saved over the years, it should still load quickly 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 server status.
I also don't want to share sensitive data with companies that build task managers. A self-hosted, local-first app gives me much more control over where my data lives.
Also, I wanted a clean API so I could connect things like an MCP server or create tasks via Telegram.
Finally, I am building this to be a highly opinionated tool focused on ergonomics. I’ve found that mainstream solutions, including paid apps like TickTick and Todoist - don't quite fit my workflow. I wanted to experiment with features that are often missing elsewhere: native Vim keybindings, a week-view timeline that maximizes vertical space, and a "task suggestion" panel.
I need "Stash" feature - a persistent, focused task list accessible from any page. Just the focus list on what I plan to work this week/month.
Despite these power-user features, the goal is to keep the interface minimal and deeply visual customizable, allowing for project-specific backgrounds and color schemes.
After comparing several options from the Awesome Selfhosted list, I found that Super Productivity came the closest to meeting my needs. However, it still lacks the specific ergonomic features and visual flexibility I want for my "rest of my life" task manager.
| Will be done | Super Productivity | Donetick | Tududi | Vikunja | TaskTrove | |
|---|---|---|---|---|---|---|
| Open-Source & Self Hosted | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Able to open when fully offline, functional offline | ✅ | ✅ | 🟥 | 🟥 | 🟥 | 🟥 |
| DnD tasks, projects. Tasks/projects reordering | ✅ | ✅ | 🟥 | 🟥 | ✅ | ✅ |
| Real time refresh, no need to refresh page when new task appear | ✅ | ✅ (with SuperSync) | ✅ | 🟥 | 🟥 | 🟥 |
| Multi tab support | ✅ | 🟥 | ✅ | 🟨 | 🟨 | 🟨 |
| API | 🟨 WIP | ✅ (with SuperSync) | ✅ | ✅ | ✅ | ✅ |
| Mobile version | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Keybinds(vim preferred) | ✅ | ✅ even vim! | ✅ keybinds highlight are smart! | ✅ | ✅ even vim! | 🟨 |
| Weekly planner | ✅ | ✅ | 🟥 | 🟥 | 🟥 | 🟥 |
| Categories/columns inside projects | ✅ | ✅ | 🟥 | 🟥 | ✅ kanban! | ✅ kanban! |
| Desktop version with quick add global shortcut | ✅ | ✅ | 🟥 | 🟥 | 🟥 | 🟥 |
| Local first | ✅ | ✅ | 🟥 | 🟥 | 🟥 | 🟥 |
Will Be Done - modern offline-first self-hosted TickTick/Todoist alternative
Most task managers are great at collecting tasks - and terrible at helping you plan your week. Will Be Done gives you a visual weekly timeline where each day is a column. Drag tasks between days. See what's realistic. Always know what to focus on.
This is my third attempt in 3 years to build the task manager I actually want to use. I already use it daily. Things pushed me to build it: own my data (self-hosted), a weekly planning view, instant sync, offline support and vim keybinds.
Try the live demo (no sign-up) at demo.will-be-done.app or the cloud version at will-be-done.app before installing.
| Project | Timeline |
|---|---|
|
|
|
| Today | Mobile |
|
|
|
Installation
Run with Docker:
docker run -d \
-p 3000:3000 \
-v will_be_done_storage:/var/lib/will-be-done \
--restart unless-stopped \
ghcr.io/will-be-done/will-be-done:latest
Then open http://localhost:3000 in your browser.
Features
Plan your week, not just your tasks
- Weekly timeline view - each day is a column, drag tasks between days to rebalance
- No angry "OVERDUE" badges - missed tasks get a gentle nudge, not a guilt trip
- One bad day doesn't snowball - weekly planning means skipping a day keeps your list clean
- Kanban boards per project with categories you define (Week/Month/Ideas/Someday)
- Multiple spaces - separate workspaces for work/personal/side projects
Fast enough that you forget it's a web app
- Local-first - full database in the browser, every action is instant, zero network round trips
- True offline mode - full read/write with no server, not a cached skeleton
- Real-time sync - changes propagate instantly across all tabs and devices
Built for people who live in their keyboard
- Vim keybindings - j/k navigation, drag with ctrl, quick-add with o/O
- Everything drag & drop - tasks, days, projects, categories
- Mobile ready - first-class mobile UI for when you're away from the keyboard
It's your data
- Self-hosted - one Docker command, SQLite, no external dependencies
- Open source - AGPL license
Vim keybinds
Global:
\- toggle stashv- toggle task details panelp- toggle project viewz- zen mode: close stash, task details, and project view
When you focused on task
i,enter- insert mode. You can edit the task.esc- exit insert mode.j,k- move between tasks up and downh,l- move between columns left and rightctrl-j,ctrl-k,ctrl-down,ctrl-up- move task up and downctrl-h,ctrl-l,ctrl-left,ctrl-right- move task left and righto- create new task below focused taskO- create new task above focused taskspace- toggle task statem- move task to other projectS- stash tasks- schedule datet- schedule task to todayr- reset scheduled,x,backspace- delete taske- edit task descriptionc- add checklist itema- open action menu
When you focused on project
i- edit projectj,k- move between projects up and downd,x,backspace- delete project
Reserved/WIP:
u,cmd-z,ctrl-z- undo actionctrl-r,cmd-shift-z,ctrl-shift-z- redo action
Current Roadmap, v1.0 release
From tasks perspective:
- [x] Repeating tasks
- [x] Task details
- [x] Checklist inside task
From api perspective:
- [ ] Open API integration
- [ ] CLI app
UI/UX:
- [ ] Undo/redo action
Others:
- [x] Migrator from popular task managers: Todoist / TickTick
Separate apps:
- [x] Desktop app with global quick add
Next possible features
From tasks perspective:
- [ ] Task comments
- [ ] Task attachments
From api perspective:
- [ ] CalDAV integration
- [ ] MCP integration
UI/UX:
- [ ] Themes per project(custom background of project and custom color of project tasks)
- [ ] Global command palette
- [ ] Multi selection of tasks
- [ ] Global themes
- [ ] DnD for project columns
- [ ] I18n
- [ ] More vim keybindings
Others:
- [ ] e2e encryption
- [ ] Global search
Separate apps:
- [ ] Widgets support on mobile app
- [ ] Notifications on web, mobile, desktop apps
- [ ] Mobile app(not PWA)
Features that are not planning for now
- Multi users per space/project
- Sharing tasks/projects/spaces
- No time schedules for tasks