Mobile overview
Fjord’s mobile story has two halves: a native client for managing your Forgejo from a phone, and the CI tooling to build, sign, and ship your own mobile apps from a self-hosted forge.
The Fjord Mobile app
Fjord Mobile is a universal iOS / iPadOS client for self-hosted Forgejo instances, aiming at feature parity with GitHub Mobile. It is live on the App Store: search for “Fjord Mobile” or open the listing from fjord.sh. A native Android client is in active development, built against the same API contract.
Inbox
Repos & code
Issues & PRs
Write
Built with SwiftUI and Swift 6 strict concurrency (iOS 17+), talking to a typed ForgejoKit client generated from the shared OpenAPI contract.
Pointing the app at a self-hosted Forgejo instance that Fjord does not host for you (a custom server) requires a Pro account. See Signing in for the two ways the app connects.
- Fjord for iOS and iPadOS: requirements, features, and iPad layout.
- Fjord for Android: the native Android client and how it is built.
- Signing in: Fjord Account vs. personal access token, and token scopes.
Shipping mobile apps from CI
Fjord runs the whole mobile release pipeline on your own infrastructure, no github.com and no hosted CI in the loop:
| Action | What it does |
|---|---|
| Self-hosted Mac runner | A Forgejo Actions runner for Swift, macOS, and iOS CI, running directly on a Mac you control. |
apple-codesign-action | Codesign and notarize macOS/iOS artifacts on a mac runner, with an ephemeral keychain. |
fjord-version-bump-action | Monotonic build number (Forgejo variable counter / run-number) plus a version bump. |
fjord-distribute-action | Distribute a signed .ipa / .apk to testers via your own S3. |
fjord-approval-gate-action | Pause a workflow for a mobile (or comment) approval before continuing. |
fjord-notify-action | Send a rich CI notification to the Fjord mobile relay, pushed to your phone. |
The approval gate and notify actions close the loop with the Fjord app: a build pings your phone, you approve from the same app you use to triage issues.
- Stephen Way