Skip to content

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.