[–] [S] 5 points 1 day ago (1 child)

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.

  • source
  • parent
  • context
  • [–] [S] 4 points 1 day ago (2 children)

    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.

  • source
  • parent
  • context
  •  

    New version of Will Be Done is released! Will Be Done is offline-first, self-hosted task manager with visual weekly timeline.

    The main idea is simple: collect tasks, put them on week timeline. I find that week timeline helps me stay more organised and fits naturally into my workflow. I can see what tasks done in which day, and what tasks planned previously in which day. Then, also, I missed other things, like open-source, offline-first, API, vim keybinds support.

    It works offline-first, so tasks are stored locally in browser/desktop app(like Linear). You can open app and use it even when your server or homelab is down or no internet connection. When server is back, sync will sync changes between devices and server.

    Main features right now:

    • Offline-first task management. It will be still available and working if no internet connection
    • Visual weekly planner
    • Projects with columns
    • Vim-style keyboard navigation
    • Self-hosted server with SQLite as primary DB
    • Fast sync between devices
    • Recurring tasks
    • Desktop app for macOS, Windows and Linux
    • Mobile PWA
    • Todoist and TickTick import

    And here is what changed since my last post:

    • Added task checklists.
    • Added Stash feature. You can store tasks that don’t have exact date yet, but you still want to keep them in focus.
    • Added task action menu.
    • Added mobile card details page.
    • Added IndexedDB support for faster and more reliable local persistence. New installs use IndexedDB by default. Existing users can turn it on in settings page.

    Links:

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

    Would love to hear feedback!

    AI disclosure

    • Design - architecture, system design: no AI involved. I’ve been working on local-first apps for ~5y and have been a software engineer for ~10y. I even built HyperDB, a database for local-first apps, because existing solutions such as Dexie and RxDB didn’t meet my needs.
    • Implementation - Pair. From the start of project it was Hint, but now it's Pair.
    • Testing - Generated.
    • Documentation - Pair.
    • Review - Pair. I have coderabbit AI + greptile, but also do manual review.
    • Deployment - Pair.
    [–] [S] 3 points 3 months ago (1 child)

    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:

    1. First approach: I tried using Redux and MobX. Performance sucked. The main reason is that MobX/Redux don't support B-tree indexing. Local-first apps rely heavily on "intervals"(cause you use fractional-indexing-jittered to order things and to support LWW per column), and that’s exactly where B-trees shine. Without them, it just got slower as the data grew.
    2. Second approach: I tried a reactive UI based on persistent SQLite queries (using wa-sqlite). It worked well for small lists, but it felt sluggish once the dataset got large.
    3. Third approach (Current): I decided to build my own DB solution, which you can see here: HyperDB. The trick is that you write the logic once, but on the frontend, it runs against an in-memory B-tree index (which is incredibly fast) and data still stored at persistent wa-sqlite layer, while on the backend, it runs against persistent SQLite (which keeps memory usage low).

    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.

  • source
  • parent
  • context
  • [–] [S] 2 points 3 months ago

    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)

  • source
  • parent
  • context
  • [–] [S] 0 points 3 months ago (1 child)

    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

  • source
  • parent
  • context
  •  

    Hey everybody! I am building self-hosted fast task manager, and today I am happy announce that I made desktop app and it supports macos, windows and linux! For mobile it is still PWA. All platforms support fast sync and works offline even when your homelab is down.

    Also, one of the top feature that I really wanted is global quick add shortcut. You can trigger it with cmd+shift+a on macos, ctrl+shift+a on windows/linux.

    Installation

    Single Docker command with SQLite as db:

    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
    
     

    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.

    view more: next ›