PriNotes is a privacy-first, feature-rich note-taking app that runs entirely on your own Nextcloud server. Your notes never touch a third-party cloud.
| Category | Feature |
|---|---|
| Editor | Paragraphs, headings, lists, checklists, code blocks, quotes, dividers |
| Media | Freehand drawing, image attachments with resize & rotate |
| Organisation | Notebooks, tags, pin, archive, trash |
| Search | Full-text search across title, preview, and content |
| Security | Per-note PIN lock, app-wide PIN + biometric (Android), hidden notes vault |
| Android | Offline-first with automatic background sync |
| Theming | Dark / light / system theme on both web and Android |
Screenshots coming soon.
- Download the latest release archive from the Releases page
- Extract the
prinotesfolder into your Nextcloudcustom_apps/directory - In Nextcloud go to Apps → Your apps and enable PriNotes
cd /var/www/html/custom_apps
git clone https://github.com/UrbanTechIO/nextcloud-prinotes.git prinotes
cd prinotes
npm install --legacy-peer-deps
npm install terser --save-dev --legacy-peer-deps
npm run buildThen enable the app in Nextcloud.
The Android app connects to your Nextcloud instance for sync. It works fully offline and syncs in the background.
- Go to the Releases page and download
prinotes-android-1.0.0.apk - On your Android device, go to Settings → Apps → Special app access → Install unknown apps
- Allow your browser (or Files app) to install APKs
- Open the downloaded
.apkand tap Install
- Open PriNotes on your phone
- Enter your Nextcloud server URL (e.g.
https://cloud.example.com) - Enter your Nextcloud username
- Generate an App Password in Nextcloud under Settings → Security → App passwords and paste it in
Note: Use a Nextcloud app password, not your main account password.
Requirements: Flutter 3.x, Android SDK
cd android-app
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter build apk --release
# APK will be at: build/app/outputs/flutter-apk/app-release.apk| PriNotes | Nextcloud |
|---|---|
| 1.0.x | 25 – 33 |
- Per-note lock — notes locked with a PIN show only the title in lists and search; content is never exposed until unlocked
- App lock — the entire Android app can be protected with a PIN and/or biometric authentication
- Hidden notes vault — a separate secret vault: type
::vaultin the search bar to configure a vault password; hidden notes only appear when the correct vault password is typed into the search bar (session-only, resets on app restart) - All data stays on your server — no telemetry, no external services
| Layer | Technology |
|---|---|
| Nextcloud app backend | PHP 8, Nextcloud OCA framework |
| Web frontend | Vue 3, Vite, custom block editor |
| Android app | Flutter / Dart, Drift (SQLite), Riverpod |
| Sync | REST API with incremental push/pull |
Issues and pull requests are welcome on the GitHub repository.