nia-todo documentation
Apps and PWA
Install nia-todo as a web app or download the matching Windows, Android and Debian clients from inside your instance.nia-todo can run as a normal website, an installable Progressive Web App (PWA), or a native client. Native clients contain their own app UI and connect to your self-hosted server for login, API access and synchronization.
Open the app installer
Open your nia-todo instance in a regular browser and select Download apps:
- Before signing in: below the login form
- After signing in: at the bottom of the left sidebar, below the version information
This opens the app installer with the downloads included in your server release. It also displays the server address you need when starting a native client for the first time.
When the button is not visible
The Download apps button is shown only when all of the following are true:
- nia-todo is open in a normal browser, not already running as a PWA or native app
- the server release contains a valid native-app download manifest
- at least one verified client artifact is available
Development/source builds and release builds created without native artifacts can legitimately have no app downloads. In that case, the button remains hidden. Use a published full server bundle or published Docker image if you need the bundled clients.
Available native clients
Published releases can provide these builds:
| Platform | Package | Architecture |
|---|---|---|
| Windows | Setup .exe |
x64 |
| Android | Sideloaded .apk |
arm64 |
| Debian/Ubuntu desktop | Desktop .deb |
amd64 |
There is currently no native client for iOS, iPadOS or macOS. Use the PWA on those platforms.
Windows
Download and run the Windows setup from the in-app installer. The desktop client supports native notifications, local reminder scheduling, tray integration, global hotkeys, native attachment downloads and Windows passkeys.
Android
Download the APK from the in-app installer. Android may ask you to allow installation from the browser or file manager used to open it.
The Android client supports native notifications, local reminders, location-based reminders and passkeys through Android Credential Manager. Location reminders can be created and managed elsewhere, but only the Android app currently triggers them based on the device location.
Debian or Ubuntu desktop
Download the desktop package, then install it locally:
sudo apt install ./nia-todo-desktop-vX.Y.Z-debian-amd64.deb
The Debian desktop client supports native notifications, local reminders, tray/autostart settings, global hotkeys, OIDC return handling and native attachment downloads. Native passkeys are not currently supported in the Debian client; use TOTP, recovery codes or another available login method.
The desktop client package is separate from the nia-todo server package. Installing the desktop package does not create or host a server.
Connect a native client
On first launch, enter the server address shown in the app installer, for example:
https://todo.example.com
The client verifies the address through the public instance endpoint before saving it. For a remote server, the URL must use HTTPS and must not contain credentials, query parameters or fragments. Plain HTTP is accepted only for local loopback development.
Use the same origin configured as the server’s Public base URL. This is especially important for OIDC and passkeys.
Install the PWA
The PWA runs the web client in a standalone window and keeps the offline-capable app shell plus its local IndexedDB synchronization queue. It is the recommended option when no native client exists or when you do not need platform-specific features.
Chromium browsers
Open Download apps and choose Install web app when the browser offers installation. Depending on the browser, the same action can also appear as an install icon in the address bar or under Install app in the browser menu.
iPhone and iPad
There is no native iOS app. Open nia-todo in Safari, select Share, then Add to Home Screen. The in-app installer shows this flow step by step on iOS and iPadOS.
Feature differences
- Browser/PWA uses Web Push where supported.
- Native clients use platform notifications and local reminder scheduling.
- Location-triggered reminders require the Android client.
- Native passkeys are supported on Windows and Android, but not currently in the Debian client.
Client updates
Native clients regularly read the download manifest from their configured server. When that server includes a newer build for the current platform, nia-todo displays an update dialog with the matching download.
The client downloads the installer or package; the operating system still performs the actual update. After updating the server, use the in-app Download apps dialog for fresh installations and follow any native-client update prompt already shown by an installed app.