Repository navigation
Releases: CrispStrobe/CrispDeck
Release list
CrispDeck v1.3.0
CrispDeck v1.3.0 makes daily publishing recoverable and streamlines Feed, Deck and Compose.
- Crossposts and threads retain per-account progress across reloads. Reconnect and retry only unfinished destinations; uncertain responses require review to avoid duplicates.
- Scheduling runs across routes and resumes after sleep/offline periods. Keep CrispDeck open: scheduled posts stay on this device.
- Destination previews, attached-file draft recovery, per-network text, alt text, starter workspaces and simpler navigation.
- Production browser workflows, live public API checks, native checks and performance/accessibility budgets validate the release.
Downloads:
- macOS: universal DMG for Apple Silicon and Intel, Developer ID signed and notarized.
- Android: APK for direct installation; AAB for store upload. Signed with the retained CrispDeck production identity. Google Play publication is separate.
- Windows: x64 EXE or MSI. These installers do not have an Authenticode signature.
- Linux: amd64 DEB.
- Web: https://crispdeck.vercel.app, plus a static web ZIP for hosting at an origin root. Optional server endpoints require separate configuration; they are not included in the static archive.
- iOS: the IPA is an App Store distribution archive, not a sideload installer. Install via the TestFlight public link when Apple approves this build. App Store review status is separate from GitHub release availability.
Store status (2026-10-26): iOS build 61 is VALID and assigned to the existing TestFlight groups, with external beta review waiting for Apple. Its App Store listing is staged; the previous unresolved review still needs a response. macOS build 7 is waiting for App Store and external TestFlight review. No Google Play publication was performed.
Validation: 2,026 unit tests, 92 browser workflows, 13 release-tool checks, native tests/checks on Linux/macOS/Windows, and 56 live public API checks passed. Authenticated live publishing was not exercised because dedicated test credentials were unavailable.
Verify downloaded files against SHA256SUMS. Android's certificate SHA-256 is included alongside the packages for future update verification.
CrispDeck v1.2.9
See the CHANGELOG for what's new in this release.
CrispDeck v1.2.8
See the CHANGELOG for what's new in this release.
CrispDeck v1.2.6
See the CHANGELOG for what's new in this release.
v1.2.5 — Installable Android APK + iOS IPA
Fixed: Android APK now installs
The Android APK is now properly signed with a debug keystore, making it directly installable via sideload. Previous releases had an unsigned release APK that Android rejected.
Downloads
| Platform | File | Notes |
|---|---|---|
| macOS ARM | .dmg | |
| macOS Intel | .dmg | |
| Linux | .deb | |
| Windows | .exe + .msi | |
| Android | .apk | Signed, sideloadable — enable "Install unknown apps" |
| iOS | .ipa | Unsigned — requires re-signing (AltStore/Sideloadly/Xcode) |
v1.2.4 — iOS .ipa + installable Android APK
All 7 platforms on one release page.
Downloads
| Platform | File | Size |
|---|---|---|
| macOS ARM | CrispDeck_1.2.4_aarch64.dmg | ~8 MB |
| macOS Intel | CrispDeck_1.2.4_x64.dmg | ~8 MB |
| Linux | CrispDeck_1.2.4_amd64.deb | ~10 MB |
| Windows | CrispDeck_1.2.4_x64-setup.exe | ~6 MB |
| Windows | CrispDeck_1.2.4_x64_en-US.msi | ~8 MB |
| Android | CrispDeck_1.2.4_android-debug.apk | ~33 MB |
| iOS | CrispDeck_1.2.4_ios-unsigned.ipa | ~6 MB |
Android
The debug APK is auto-signed and directly installable via sideload (enable "Install unknown apps" in settings).
iOS
The .ipa is unsigned — it requires re-signing with your Apple Developer certificate for device installation. You can use tools like AltStore, Sideloadly, or Xcode to sign and install.
Full changelog: CHANGELOG.md
v1.2.3 — Mobile binaries on release page
Android APKs and iOS simulator builds now appear directly on this release page (not just in Actions artifacts).
Downloads
- Desktop: macOS ARM (.dmg), macOS Intel (.dmg), Linux (.deb), Windows (.exe, .msi) — attached by release workflow
- Android: APK files — attached by mobile build workflow
- iOS: Simulator .app.tar.gz — attached by mobile build workflow (distribution builds require Apple signing)
Changes since v1.2.2
- Mobile workflow uses
gh release uploadto attach binaries to the release page - APK files named with version:
CrispDeck_1.2.3_*.apk
Full changelog: CHANGELOG.md
v1.2.2 — Android APK, iOS Xcode 16, rustls
Mobile Builds
- Android APK now builds: switched
reqwestfrom OpenSSL torustls-tlsfor cross-compilation; 33 MB APK artifact downloadable from GitHub Actions - iOS builds on Xcode 16: upgraded CI runner to
macos-15for Tauri 2 project format 77 support; dynamic xcodeproj/scheme discovery - Artifact uploads: both mobile builds upload artifacts via
actions/upload-artifact@v4
Desktop Binaries
All desktop binaries included as release assets (macOS ARM/Intel, Linux .deb, Windows .exe/.msi).
v1.2.1 — Poll fix, offline cache, perf, a11y
Highlights
- Mastodon poll voting fixed — was silently failing (missing auth header) for all users
- Offline feed cache — PWA users see cached feed with "Offline" banner when network unavailable
- 6 performance optimizations — parallel crossposting/media uploads/column loads, normalize caches
- Account switcher — stacked avatars in sidebar footer with popover
Features
- Account switcher in sidebar footer
- Multi-select module for bulk post actions
- Quick add-to-list button on every post
- Bluesky lists API (getLists, getList, getListFeed, getListMutes, getListBlocks)
- Offline feed cache with retry banner
- Page-error helpers (tryLoad/tryAction/tryWrite)
Fixes
- Mastodon poll voting auth (was broken for all users)
- Error toasts for bookmark, TTS, translation, moderation failures
- Accessibility: keyboard support on post text, quoted images, list picker
- Silent error audit on lists and moderation pages
Performance
- Parallel crosspost pipeline (2-3x faster for 3-platform crossposts)
- Parallel Mastodon media uploads (2-3x faster for multi-image)
- Parallel deck column loads (2-3x faster for multi-account)
- Cached HTML stripping + handle normalization
- Session-scoped Post prefs cache
Tests
- 1,546 unit tests across 110 files (up from 1,443)
- 44 Playwright E2E tests across 10 files (up from 29)
v1.2.0 — Deck Parity Release
CrispDeck v1.2.0 — Deck Parity Release
Date: 2026-07-04
Tag: v1.2.0
The deck is now feature-complete. This release adds 27 features that bring the multi-column experience to full parity with classic deck clients: 5 new column types, a floating compose panel, column keyboard navigation, per-column notifications, display density modes, streaming for all columns, and shareable collections.
Highlights
- 20 column types (up from 15): Messages/DMs, Trending, Activity, Liked Posts, and New Followers join the deck
- Floating compose stays on top of the deck — reply and quote from any column without navigating away
- Full keyboard-driven workflow: navigate columns with h/l, posts with j/k, jump with 1-9, compose with n, add column with a
- Per-column notifications: configure sound, desktop alerts, or both per column
- Display density: single toggle switches the entire UI between Compact, Comfortable, and Spacious
New Deck Column Types
| Column | What it shows | APIs used |
|---|---|---|
| Messages | Bluesky chat conversations + Mastodon DM threads | chat.bsky.convo.listConvos, /api/v1/conversations |
| Trending | Bluesky trending topics + Mastodon trending tags/links | getTrendingTopics, /api/v1/trends/* |
| Activity | Engagement on your posts (likes, reposts, quotes only) | Notification APIs filtered by engagement type |
| Likes | Posts you've liked, reverse-chronological | getActorLikes, /api/v1/favourites |
| Followers | Recent new followers | Notification APIs filtered by follow type |
Deck Column Management
- Color coding: 8 preset accent colors rendered as a top border stripe for visual distinction between columns
- Collapse/minimize: shrink a column to a 40px icon strip to save space — click to re-expand
- Pin/lock: prevent accidental removal or drag-reorder
- Clear: wipe rendered content without affecting data — next refresh loads fresh
- Width presets: one-click Narrow (280px), Medium (350px), Wide (450px) alongside drag resize
- Auto-scroll / scroll-lock: toggle per column — when unlocked, new streaming posts scroll into view automatically
- Column-level mute filters: keyword + regex filters scoped to a single column, stacking on top of global mute rules
Compose & Posting
- Floating compose panel: slide-out panel from the right edge, keeps deck visible while composing, focus trap, Escape to close, Ctrl+Enter to post
- Quick-schedule: Schedule button with inline date/time picker next to the Post button — saves as a scheduled draft
- Reply/quote from deck: clicking reply or quote on any deck post opens the floating compose with context pre-filled
Keyboard Navigation
| Key | Action |
|---|---|
h / ArrowLeft |
Focus previous column |
l / ArrowRight |
Focus next column |
j |
Next post in focused column |
k |
Previous post in focused column |
1-9 |
Jump to column by position |
n |
Open floating compose |
a |
Toggle add-column menu |
o |
Open focused post in thread view |
r |
Reply to focused post |
Escape |
Clear focus / close menus |
Search & Discovery
- Advanced search operators UI: per-platform syntax help popover showing available operators (Bluesky
from:,since:,until:,lang:,has:media; Mastodonfrom:@user@instance,#hashtag) - Quick filter buttons: "Has media", "From me", "Past week" — one-click operator insertion
- Saved searches: save queries for one-click re-access via dropdown, delete saved searches
Display & Settings
- Display density modes: Compact / Comfortable / Spacious selector in Settings > Appearance
- Compact: 28px avatars, 8px padding, 0.9x font scale
- Comfortable: 40px avatars, 16px padding, 1x font scale (default)
- Spacious: 48px avatars, 20px padding, 1.05x font scale
- Applied via 7 CSS custom properties on
:root, initialized on app startup
Real-Time & Streaming
- Streaming for all column types: timeline, mentions, notifications, local, federated, hashtag, list, and user columns now receive live updates via Mastodon WebSocket + Bluesky Jetstream (previously only keyword-monitor columns streamed)
- Live engagement counters on deck: Jetstream enabled on the deck page so Bluesky like/repost counts update in real-time on all Post components
Collections
- Shareable curated collections: export any reading list as JSON text or base64 data URL, import from JSON — round-trip preserves all post data including URIs, text, author info, and platform
Stats
- 1,443 frontend unit tests across 99 test files (up from 1,213 across 86 in v1.1.1)
- 29 Playwright E2E tests, 15 Rust tests
- 20 deck column types (up from 15)
- 14 new test files, 13 new/modified source files
- CI fully green on Linux/macOS/Windows
New Files
| File | Purpose |
|---|---|
FloatingCompose.svelte |
Slide-out compose panel for deck |
column-notify.ts |
Per-column Web Audio beep + desktop Notification API |
column-mute.ts |
Per-column keyword + regex mute filtering |
density.ts |
Display density modes (CSS custom properties) |
saved-searches.ts |
Saved search persistence (localStorage) |
Breaking Changes
None. All changes are additive. Existing deck layouts, column configs, and settings are forwards-compatible — new fields default to sensible values when not present.