DocsDevelopment
Building from source
Build the desktop app and the iPhone companion, and run every check.
Requirements
| Tool | Version |
|---|---|
| Rust | stable |
| Node.js | 22 or newer |
| pnpm | 10 (corepack enable provides it) |
Xcode and xcodegen |
Xcode 16 or newer, iPhone app only |
| Linux only | libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libsecret-1-dev libssl-dev |
Desktop app
git clone https://github.com/AstroDevCompany/FreshNews.git && cd FreshNews
cd apps/desktop && corepack enable && pnpm install
pnpm tauri build # installers end up in target/release/bundle/
On macOS, pnpm tauri build --bundles app builds just Fresh News.app (about ten minutes on a clean checkout, about 34 MB). For development with hot reload:
pnpm tauri dev
iPhone app
cd apps/ios/FreshNews && xcodegen generate
xcodebuild -project FreshNews.xcodeproj -scheme FreshNews \
-destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO build
For a device, set DEVELOPMENT_TEAM in project.yml to your own team. A free Apple ID can sign the app, but iOS allows only three free-profile apps per device, with seven-day certificates.
Checks
| Check | Command |
|---|---|
| Rust, all crates (290 tests) | cargo test --workspace --locked |
| Frontend (236 tests, incl. accessibility) | cd apps/desktop && pnpm test && pnpm typecheck |
| iOS core (34 tests) | cd apps/ios/FreshNewsCore && swift test |
| Licences, versions, vulnerabilities | python3 scripts/license_report.py && python3 scripts/check_versions.py && cargo audit |
The same checks run in GitHub Actions on every push and pull request, on macOS, Windows and Linux.
Something unclear or out of date? Open an issue.