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
    arrow-down
    5
    ·
    12 hours ago

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

    • PerogiBoi@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      26 minutes ago

      People like you are miserable. Someone puts time and effort into making their own software, share it for free with other people, give them a very easy way to set it up themselves, and then you come in and complain? Loser behaviour.

    • quolpr@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 hours ago

      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?

  • cheese_greater@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    1 day 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
      ·
      1 day 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
        19 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

  • Nednarb44@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    1 day 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
      1 day 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
        ·
        1 day 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!

  • ki9@lemmy.gf4.pw
    link
    fedilink
    English
    arrow-up
    1
    ·
    17 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.

    • quolpr@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 hours ago

      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!

  • modular950@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    20 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!

    • quolpr@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 hours ago

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