Skip to content

DocsDevelopment

Contributing

How to propose a change, and the rules that keep Fresh News honest.

Issues and pull requests are welcome on GitHub.

Before you open a pull request

  • Run the checks.
  • Changes to prompts, validation or ranking need a test that shows the behaviour.
  • Anything that stores or sends data must update the data and privacy document.
  • Never edit a shipped database migration. Add a new one, with an upgrade test from the previous version.

Architecture at a glance

Layer Where
Desktop shell, commands, scheduler and sync loops apps/desktop/src-tauri (Tauri 2)
UI apps/desktop/src (React 19, TypeScript, Vite)
Types, rules, text utilities crates/domain
SQLite, migrations, backups, search crates/storage
Feed fetching, parsing, source health crates/news-ingestion
Clustering, ranking, editions, generation crates/story-engine
Providers, prompts, validation crates/ai-core
Schedule rules (DST, catch-up) crates/scheduler
Cross-device contracts and merge crates/sync, packages/contracts
iPhone app and its testable core apps/ios

Design decisions are recorded as ADRs in docs/architecture.md.

Licence

Dual-licensed under MIT or Apache-2.0, at your option. The Fresh News name and logos are not covered by these licences.

Something unclear or out of date? Open an issue.