2.5 KiB
Decky
Decky is a focused cross-platform desktop client for viewing and editing boards from a Nextcloud Deck instance.
Current application
The active application lives in app/ and uses:
- Tauri 2 for the small native desktop shell;
- Svelte 5 and TypeScript for the interface;
- the operating system webview on Windows, macOS, and Linux;
- the native credential store on each platform (Windows Credential Manager, macOS Keychain, or Linux Secret Service);
- Tauri's Rust HTTP client so Nextcloud requests are not blocked by browser CORS.
Implemented functionality includes:
- app-password authentication and automatic API-path discovery;
- active-board filtering and saved board selection;
- horizontal and vertical layouts saved independently per board;
- card creation, editing, deletion, due date, description, and color controls;
- a directly visible completion checkmark that synchronizes Deck's
donevalue and applies the configured active/completed color; - preserved full-card update payloads and the tested Deck cross-stack movement compatibility fallback;
- responsive/collapsible navigation and card search.
The earlier .NET/WinUI projects remain in src/ and tests/ temporarily as a
reference for the compatibility probe and original API test cases. They are no
longer the primary application.
Development
Install Node.js, Rust stable, the platform-specific Tauri prerequisites, and then run:
cd app
npm install
npm run check
npm test
npm run tauri dev
Build a release executable with:
powershell -ExecutionPolicy Bypass -File .\scripts\Prepare-Release.ps1 -Version 0.2.0 -Notes "Release notes"
This produces a normal per-user Windows setup executable plus the cryptographic signature and metadata used by Decky's in-app updater.
Cross-platform artifacts must be compiled on their target operating system.
Use macOS for .app/DMG builds, Windows for MSI/NSIS builds, and Linux for the
desired Linux packages.
Security
Decky only accepts HTTPS servers, except for localhost during development.
The app password is never stored in local storage or the JSON/settings model.
When “Save securely on this device” is selected it is saved through the native
OS credential service.
Updates
Installed copies update from signed release artifacts, never with git pull.
The updater is available from Settings and reads stable metadata from the
Forgejo repository. See app/UPDATES.md for signing-key backup, release tags,
Forgejo Actions secrets, and the manual release fallback.