sailfish.cr
sailfish.cr
sailfish.cr explores a reliable path to native Sailfish OS apps with Crystal application logic and QML/Sailfish Silica for the interface.
The first technical reference case is a small, offline-capable FreshRSS client. FreshRSS is not yet a product validated by broad demand; it is deliberately a challenging integration case: HTTP API, authentication, lists, local storage, and synchronization.
Current status
CSF-001A: the local FreshRSS instance and API login workCSF-001B: the MVP and API contract are defined and verifiedCSF-001C: the typed Crystal API client reads FreshRSS on macOS- Device, SDK, QML, and RPM checks follow once a build host and Jolla Phone are available
Until then, the Crystal core remains fully developable and testable on macOS, without Qt or Sailfish dependencies.
Start here
Crystal core
Requires Crystal 1.21 or newer. There are no external dependencies yet, so shards install is not needed.
crystal tool format --check
crystal spec
Both run without a FreshRSS instance and without network access.
Integration test
spec/integration/ talks to a real FreshRSS instance and stays pending unless FRESHRSS_BASE_URL, FRESHRSS_USERNAME, and FRESHRSS_API_PASSWORD are set. With a local instance running, its .env provides them:
set -a; . dev/freshrss/.env; set +a
crystal spec
Credentials reach the test through the environment only; never put them into a spec file. The auth token is redacted in every output, including failure messages.
Repository status
- intended public home:
treagod/sailfish.cr - target platform: AArch64/Sailfish OS; the exact version will be established on device
- reference system: FreshRSS with its Google Reader-compatible API
- development service: the official FreshRSS container image, SQLite, and Podman
- license: MIT (see
LICENSE)
sailfish.cr
- 0
- 0
- 0
- 0
- 1
- about 4 hours ago
- August 5, 2026
MIT License
Thu, 06 Aug 2026 09:55:52 GMT