I’ve been building a self-hosted task manager focused on something I couldn’t find in one package: true offline support, fast sync across devices and API support.

Most open source task apps I tried leaned toward either:

  • good offline support but weak multi-device sync with no API support
  • or good sync but limited offline functionality

Will Be Done is my attempt to solve both.

Demo: https://demo.will-be-done.app/

GitHub: https://github.com/will-be-done/will-be-done

Home page: https://will-be-done.app/

What is supported right now:

  • True offline mode - reads and writes happen in the local browser DB and sync to the server when it becomes available again (so you can still use it even if your homelab is down!)
  • Fast sync across devices
  • Tasks and projects with drag-and-drop support
  • Kanban inside projects
  • Weekly planner
  • Recurring tasks
  • Vim keybindings

Planned in the near future:

  • CalDAV integration
  • Import from Todoist / TickTick / Microsoft To Do
  • API support
  • MCP support
  • Desktop app with global quick-add shortcut

Why I built it:

This is my third attempt over the last 3 years to build my ideal task manager, and I now use it daily.

I’ve worked on local-first and sync-heavy systems professionally, so offline-first architecture is something I care a lot about getting right.

Installation:

Single Docker command, no docker-compose, no external dependencies, SQLite included.

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/.

Would love feedback from people here, especially if you care about self-hosting, offline-first apps, or replacing proprietary task managers.

  • PointyFluff@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    5 hours ago

    oh boy; yet another bloatware todo app; and it runs on container. Extra resource-nice!

  • ki9@lemmy.gf4.pw
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 hours ago

    Been meaning to make something like this, where every day has a list and I can swipe through days. I want uncompleted tasks to be moved to the next day at midnight. Finally, I want default (repeating) tasks every day or every week, which don’t carry over.

    Been too lazy to make it myself so right now I have a daily todo list template (text file) that gets copied to $(date -I).md a month in advance. I keep a few days open in nvim tabs and access them on my phone via ssh/termux. Then the cronjob archives old lists. Kludgy but been using it for years.

  • cheese_greater@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    21 hours ago

    Are infinite nesting/subtasks and drag/drop possibillities for the future?

    I would kill for a Todoist replacement like that. GoodTask is pretty damn close but theres always still that itch that only Todoist scratched lol

    Very ripe area for your efforts, right on bro

    • quolpr@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      20 hours ago

      Thanks for the feedback!

      DnD is already here. You can reorder tasks/move to other projects. And as for nesting, it’s pretty complex feature. It will be hard to implement and maintain (especially maintain), so not planning right now, unfortunately. But at least I plan to add subtask list.

      • cheese_greater@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        12 hours ago

        Thx for thoughts, ya its probably a but of a doozie in terms of complexity. Setimes i wonder if its better for me i dont have that capabillity anymore, gotta split things up, more+, +rather

  • modular950@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 hours ago

    Going to give this a look-see!

    Currently having an issue where launching from the PWA (via Vanadium on GrapheneOS) results in the manifest.json page rather than redirecting to login or cached session. I suspect this has more to do with my own browser configuration possibly, but once I get that sorted, I’ll be eager to take it for a drive!

  • Nednarb44@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    20 hours ago

    This looks solid. I’ve been using SuperProductivity for a while, but the json syncthing uses to sync between my computer and phone keeps breaking. Your project looks like it has a very similar interface, which I like. I’m looking forward to giving this a shot.

    Edit: any chance for a mobile app on f-droid down the road?

    • quolpr@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      20 hours ago

      Yep, that’s why I don’t like SuperProductivity, it’s hard to make proper sync on top of json/caldav(especially with proper conflict resolution). As far as I know, SuperProductivity building its own cloud sync protocol, but it’s plan to be a paid feature anytime.

      As for mobile version - yep, I plan to add them too. It’s already support PWA, so you can install app as a bookmark (and it opens pretty fast btw! And works offline also). But I want to have proper notifications in future and maybe widgets, so andriod/ios will be, but not sure when.

      Thanks for the feedback!

      • Nednarb44@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        18 hours ago

        Yeah I think them adding a cloud sync as a paid option is entirely fair, but not something I want.

        Thanks again for sharing the project!