Open source · AGPL-3.0 · v0.1

Your tasks.
Your server.

An open-source, local-first task manager you host yourself. Everything you expect from a polished task app, without the subscription, the tracking or the lock‑in.

Go ahead, it works. Press q to add a task, j/k to move, c to complete.

todo.your-server.com Synced

Today

+ q
    0MB static binary
    0SQLite file holds everything
    0trackers inside the app
    0usable offline

    Why OpenTodo

    The comfort of a commercial app.
    The freedom of software you run.

    Local-first, for real

    Every device keeps a full copy of your tasks. The app opens instantly, works on a plane, and syncs the moment it sees your server again.

    Keyboard-first

    Capture, triage and finish without touching the mouse. Try the keys below.

    Your data, one folder

    A single SQLite file in one volume. Back it up and you have backed up everything. JSON export any time.

    Tiny footprint

    One distroless container, no database server, no Redis. Happy on a Raspberry Pi or the cheapest VPS.

    Private by design

    The app makes no requests except to your server. No telemetry, no crash reporters, no third-party fonts.

    An API that's a first-class citizen

    REST endpoints and API tokens write through the same op log as the app. Create a task with curl and watch it land on your phone on the next sync.

    # add a task from a script
    curl -X POST $OPENTODO/api/v1/tasks \
      -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"title":"Renew passport","priority":1}'

    Built in the open, with specs

    Every feature starts as an OpenSpec change. Behavior is written down before it is built, so you can read exactly how it works.

    Sync that just converges

    Edit anywhere. Offline.
    Never pick a version again.

    Every change is a tiny operation on one field, stamped with a hybrid logical clock. Devices queue them while offline and exchange them when they reconnect. The same rule runs everywhere, so every device lands on the same state. Play with it:

    Toggle Wi-Fi on a device, change something, then reconnect.

    💻 Laptop Synced
      Your server 0 ops
      📱 Phone Synced

        Tip: click a task title to rename it, click the circle to complete it.

        Looks like it costs money

        Calm, fast, and at home
        on every screen.

        Project view with the task detail panel open
        OpenTodo inbox on a phone in dark mode

        Installable as an app on iPhone, Android and desktop. Light and dark mode follow your system.

        The honest comparison

        Rent your to‑do list,
        or own it.

        Typical subscription appOpenTodo
        PriceMonthly, foreverFree. A €4 VPS runs it
        Where your data livesTheir serversYour server, one SQLite file
        Works offlineDepends on the planFully, on every device
        TrackingAnalytics in the appNone. Zero requests elsewhere
        If the company disappearsSo do your tasksNothing happens
        Source codeClosedAGPL-3.0, on GitHub

        Self-host in 2 minutes

        One container.
        Zero required config.

        Point Coolify at the repository, or run one command. Open the URL, create the owner account, done. Updates are a redeploy; migrations run on start.

        • Automatic HTTPS with Coolify
        • Health check built into the binary
        • Sign-up closed after the owner account
        • Back up one volume, restore anywhere
        # In Coolify: + New Resource → Public Repository
        Repository  https://github.com/pixari/opentodo
        Branch      main
        Build pack  Dockerfile
        Port        8080
        Storage     volume → /data
        # Add your domain, press Deploy. That's it.

        What's next

        v0.1 is the walking skeleton.
        Here's where it's walking.

        • Natural-language quick add
        • Subtasks
        • Labels & filter queries
        • Recurring tasks
        • Reminders
        • Sharing & comments
        • CalDAV
        • Webhooks
        • Import from other apps
        • Passkeys & OIDC
        • End-to-end encryption

        Read the full roadmap →

        Stop renting your to‑do list.

        Deploy OpenTodo tonight. Your tasks will still be yours in ten years.