Your account
Passwords are hashed, sign-up closes after the owner account, and you can add passkeys and two-factor authentication. Single sign-on with your own provider is optional.
About and trust
A task app holds the next few years of your plans, so it is fair to ask who is behind it and what happens if they stop. This page answers that as plainly as we can, and links to the files where you can check it yourself.
OpenTodo is built and maintained by Raffaele Pizzari, with contributions from people who use it. Builds OpenTodo in the open: one container, your own server, every feature specified before it is built.
It started as a replacement for subscription task apps for one household and grew from there. It is not a company, has no investors and sells nothing. Work happens in public on GitHub: issues, pull requests, specifications and releases.
The licence, in plain words
You can run OpenTodo for anything, study how it works, change it and share it. The one condition is that anyone who offers a changed version to other people over the network must publish their changes under the same licence.
For you, that means three things. Nobody can paywall a feature you rely on. If the maintainer stopped tomorrow, the code, the container images and the specifications would still be there for anyone to carry on. And the licence cannot be changed on the copy you already have.
It does not give anyone access to your server or your data. The licence is about the program's source code, not about what you keep in it. Your tasks are yours and leave with you as one file whenever you like.
Security
The security model is written down in the app's security policy, which also says how to report a vulnerability privately by email. The short version:
Passwords are hashed, sign-up closes after the owner account, and you can add passkeys and two-factor authentication. Single sign-on with your own provider is optional.
They live on your server and nowhere else. If you want, end-to-end encryption encrypts titles and notes on your devices, so not even the server can read them.
The app has no telemetry and makes no request to anyone but your server, unless you configure one: a backup destination, a webhook, or an AI provider with your own key.
Written down before it is built
Each feature starts as a written proposal with testable scenarios, and only then becomes code. The specifications describe how OpenTodo behaves today, and they are public. If the documentation and the app ever disagree, the specification settles it.
The public demo gives every visitor a private sandbox with sample data. Nobody else can see it, and it is deleted after two hours without activity and every night, so it is not a place to keep anything real. How the demo works
This website
Everything here about the app describes OpenTodo v0.6.0, the latest release: the version, the documentation, the screenshots and the release notes come from that release's own files, never from memory. Every statement about what the app can do links to its documentation page, and a build check fails when one does not.
Leaving
Every person on a server can download all their data as one file and import it on another OpenTodo server, or read it anywhere, since it is plain JSON. The server owner can take the whole data folder with them. Nothing keeps you here except that it works.
Try the demo in your browser. When you like it, install OpenTodo on your server and import your tasks.