A native macOS app for Nextcloud Deck with a Trello-like board interface.
- Sign in with your Nextcloud server URL, username, and password. The app uses the Nextcloud Login Flow / getapppassword to obtain an app password and stores credentials securely in the system Keychain.
- Boards listed in the sidebar; switch between them to focus on one board at a time.
- Trello-style board view: stacks as columns, cards in each column. Create lists (stacks) and cards, open cards to edit title and description.
- Built with SwiftUI and follows current macOS design (toolbars, sidebar, materials).
- macOS 14.0+
- Xcode 15+ (to build)
- A Nextcloud server with the Deck app installed.
- Open
NextcloudDeck.xcodeprojin Xcode. - Select the NextcloudDeck scheme and a Mac destination.
- Press Run (⌘R).
Or from the terminal:
xcodebuild -scheme NextcloudDeck -configuration Debug -destination 'platform=macOS' build
open ~/Library/Developer/Xcode/DerivedData/NextcloudDeck-*/Build/Products/Debug/NextcloudDeck.appFrom the repo root:
-
Generate the app icon (requires librsvg for SVG→PNG, or place a 1024×1024
icon_1024.pnginNextcloudDeck/Assets.xcassets/AppIcon.appiconset/):./generate-appicon.sh
-
Build Release (sign with your Developer ID before creating the DMG if you want a signed app):
xcodebuild -project NextcloudDeck.xcodeproj -scheme NextcloudDeck -configuration Release -derivedDataPath build/DerivedData build
-
Create the DMG:
APP_PATH=$(find build/DerivedData/Build/Products -name "NextcloudDeck.app" -type d | head -n 1) ./create-dmg.sh "$APP_PATH" NextcloudDeck-1.0.0.dmg "Nextcloud Deck 1.0.0"
The icon source is icon_source.svg; edit it and re-run ./generate-appicon.sh to refresh the app icon.
On each published GitHub release, the Build and Attach Release Assets workflow builds the app (signed and notarized), generates a DMG and a ZIP, and attaches them to the release.
- Icon: The workflow runs
./generate-appicon.sh(usinglibrsvgon the runner) so the built app and DMG use the icon fromicon_source.svg. - Signing and notarization: The workflow signs and notarizes the app by default. Configure these repository secrets for the release job to succeed:
APPLE_CERTIFICATE_BASE64,APPLE_CERTIFICATE_PASSWORD,APPLE_TEAM_ID,APPLE_DEVELOPER_ID,APPLE_APP_PASSWORD.
The app uses the Nextcloud Deck REST API (v1.0):
GET /boards– list boardsGET /boards/{id}/stacks– list stacks (columns) with cards- Create/update/delete for boards, stacks, and cards
Authentication uses Basic auth with the app password obtained from GET /ocs/v2.php/core/getapppassword (or your existing app password if you sign in with one).
- NextcloudDeck/ – main app target
- Models/ –
Board,Stack,Card,DeckLabel(Deck API types) - Services/ –
DeckAPI,NextcloudAuth,KeychainStorage - Views/ – Login, board list, board detail (columns + cards), card sheet, new stack sheet
- Helpers/ –
Color+Hexfor label/board colors
- Models/ –
Use and modify as you like. Deck and Nextcloud are their respective projects’ trademarks.