Vikunja: The Self-Hosted Todoist Alternative You Can Actually Control
If you've ever used a task manager like Todoist, you know the drill. It's sleek, it works, and it quietly holds all your personal and team todos on someone else's server. For many, that's fine. For developers who love control, privacy, or just hate monthly subscriptions, it's a constant itch. What if you could have that same powerful task management experience, but on your own infrastructure?
Enter Vikunja. It's the open-source, self-hosted answer to modern task management. Think of it as your personal or team's productivity hub that you fully own, from the database to the frontend. No data leaks, no vendor lock-in, and no surprise pricing changes—just your tasks, your way.
What It Does
Vikunja is a full-featured task management and to-do list application. It provides a clean, intuitive web interface, mobile apps, and even desktop clients to manage everything from your grocery list to complex team projects. It supports lists, kanban boards, tables (spreadsheet-like views), calendars, and Gantt charts. You can set reminders, assign tasks, add labels, attach files, and collaborate with others—all the features you'd expect from a top-tier SaaS app, but running on your own server.
Why It's Cool
The magic of Vikunja isn't just in replicating Todoist's features. It's in how it's built and what it enables for a technical user.
- True Ownership & Privacy: Your data stays where you put it. This is huge for teams handling sensitive projects or for anyone wary of cloud-based todo apps mining their productivity data.
- Docker-First & Kubernetes-Ready: The project is container-native. You can have it running with a single
docker-compose upcommand. This makes it trivial to deploy on a home server, a VPS, or even a full-blown k8s cluster. - API-First Architecture: The entire backend is a powerful REST API. This means you can script your task management, integrate it into your CI/CD pipelines, or build custom clients. Your todo list becomes a programmable part of your workflow.
- Flexible Data Storage: It supports multiple databases (MySQL/MariaDB, PostgreSQL, SQLite), so you can fit it into your existing stack.
- Active & Open Community: It's a genuinely open project with clear contribution guidelines, making it a solid candidate for long-term use without fear of abandonment.
How to Try It
The easiest way to kick the tires is with Docker. If you have Docker and Docker Compose installed, you're minutes away.
- Grab the example
docker-compose.ymlfile from the Vikunja GitHub repository. - Run
docker-compose up -d. - Open
http://localhost:8080in your browser.
That's it. You'll have a full instance running locally. For a more permanent setup (or to use the mobile apps), you'll want to deploy it on a server with a domain and reverse proxy (like Nginx or Caddy). The docs are thorough and cover everything from basic installs to advanced configurations.
Final Thoughts
As a developer, Vikunja hits a sweet spot. It solves a real problem—managing tasks—without creating new ones like data privacy or inflexibility. It feels like a tool built by people who understand infrastructure as code and the desire for self-reliance. Whether you're a solo dev looking to de-Google your life or part of a team needing a secure, internal project manager, Vikunja is absolutely worth a weekend of tinkering. It might just be the last task manager you ever need to choose.
@githubprojects
Repository: https://github.com/go-vikunja/vikunja