Show Menu

Development #

General #

To contribute to Vikunja, fork the project and work on the main branch. Once you feel like your changes are ready, open a PR in the respective repo. A maintainer will take a look and give you feedback. Once everyone is happy, the PR gets merged and released.

If you plan to do a bigger change, it is better to open an issue for discussion first.


The code for the api is located at

We use go modules to manage third-party libraries for Vikunja, so you’ll need at least go 1.17 to use these.

A lot of developing tasks are automated using a Magefile, so make sure to take a look at it.

Make sure to check the other doc articles for specific development tasks like testing, database migrations and the project structure.

Frontend requirements #

The code for the frontend is located at More instructions can be found in the repo’s README.

You need to have pnpm and nodejs in version 16 or 18 installed.

Git flow #

The main branch is the latest and bleeding edge branch with all changes. Unstable releases are automatically created from this branch.

A release gets tagged from the main branch with the version name as tag name.

Backports and point-releases should go to a release/version branch, based on the tag they are building on top of.

Conventional Commits #

We’re using Conventional Commits because they greatly simplify generating release notes.

It is not required to use them when creating a PR, but appreciated.