Vikunja

Open-source to-do and project management app

Project Management & Tasks ★ 5.5k stars Easy setup AGPL-3.0

Vikunja is an open-source to-do app and project management tool with lists, kanban, gantt, and calendar views. It targets individuals and teams wanting flexible task management. It is deployed via Docker or a single binary.

Key features

  • List, kanban, gantt and calendar views
  • Reminders and recurring tasks
  • REST API
  • Lightweight single binary

Pros & cons

Strengths

  • Flexible task views
  • Lightweight
  • Good API

Trade-offs

  • Smaller ecosystem
  • Fewer integrations than rivals

Vikunja replaces

Last reviewed Sep 13, 2026 · 815 words

Vikunja's quiet advantage over every other self-hosted task manager is CalDAV. Every project it holds is also a CalDAV calendar, so your tasks and due dates show up in Apple Reminders, Thunderbird, DAVx5 on Android or anything else that speaks the protocol, with no Vikunja app installed and no third-party sync. That single feature is why it replaces Todoist for me where Planka and Focalboard, both fine kanban tools, never could: the tasks leave the web UI and reach the places I already look. The rest of Vikunja is a single Go binary (5,259 GitHub stars, AGPL-3.0) with list, kanban, Gantt, table and calendar views over the same tasks, running in about 256 MB of RAM on SQLite.

One image, one config, three variables

Since the front end was folded into the API binary, deployment is one container:

services:
  vikunja:
    image: vikunja/vikunja:latest
    environment:
      VIKUNJA_SERVICE_PUBLICURL: https://tasks.example.com/
      VIKUNJA_SERVICE_JWTSECRET: generate-a-long-random-string
      VIKUNJA_SERVICE_ENABLEREGISTRATION: "false"
    ports:
      - "127.0.0.1:3456:3456"
    volumes:
      - ./files:/app/vikunja/files
      - ./db:/db
    restart: unless-stopped

Port 3456 serves both the UI and the API. PUBLICURL must match the address users hit or login redirects and CalDAV URLs break. The JWT secret signs sessions; change it and everyone is logged out, lose it and nothing else happens, which is the right failure mode. Registration is on by default, so turn it off after creating your account or run it behind Authelia-style SSO; Vikunja supports OpenID Connect natively through VIKUNJA_AUTH_OPENID_* if you already have an identity provider. SQLite lives at /db/vikunja.db and is fine for a household; the Postgres and MySQL options exist for teams. Attachments go in /app/vikunja/files. Two directories, one backup.

Five views over the same tasks

A project (a list, in older versions) can be shown as a list, a kanban board with buckets, a Gantt chart, a table with sortable columns, or a calendar. The views are not separate data; drag a card to Done on the board and the list view shows it done. Tasks carry due dates, reminders, recurring intervals, labels, priority, assignees, sub-tasks, related tasks and attachments. Projects nest, so "Home" can hold "Garden" and "Car", and filters are saved as their own projects, which is how a "due this week across everything" view works. It is a lot for a tool this light, and the Gantt view in particular is something Planka and Focalboard do not offer.

CalDAV, and how to wire it

The CalDAV endpoint is https://tasks.example.com/dav/ with your username and a dedicated CalDAV token generated under user settings, which is the detail people miss: your login password will not work there if you use SSO. Each project appears as a calendar; subscribe to the ones you want. Tasks with due dates render as events or to-dos depending on the client. This is one-way in spirit and two-way in practice: ticking a task done in Reminders marks it done in Vikunja. Edits made through CalDAV are simpler than the web UI can express (no buckets, no labels), so use the phone for capture and completion and the web for organising.

Where it is weaker than the incumbents

Integrations are the gap. Todoist has a hundred; Vikunja has a REST API, a Todoist and Trello importer, webhooks, and CalDAV, and that is the list. There is no first-party mobile app, though the web UI installs as a PWA and does the job. Email-to-task does not exist natively. The kanban is good but lacks Planka's polish for a team that lives in boards all day. And the ecosystem is small enough that when something breaks you are reading GitHub issues, not a knowledge base.

You wantPick
Personal tasks that reach your phone's native appsVikunja
A Trello board for a team, nothing elsePlanka
Boards inside a wiki-like workspaceFocalboard
Tasks bundled with files, calendar and mail you already runNextcloud with its Tasks app

Nextcloud's Tasks app is the honest comparison for someone already running Nextcloud: it also speaks CalDAV, but has no kanban, no Gantt and a far weaker UI. The project management category has the heavier team tools like OpenProject if what you need is issue tracking with time budgets.

What I'd do

Vikunja on SQLite, registration off, CalDAV token created on day one and subscribed on the phone. Import Todoist or Trello through the built-in importer rather than by hand. Nightly copy of the two volumes. For a household or a small team under 10 people it is the most complete task manager on this site that still fits in a quarter of a gigabyte, and the only one whose tasks turn up in Reminders without a bridge.

Compare Vikunja

25 head-to-head comparisons.

Similar project management & tasks apps