OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
Domain docs
Notifications
Notification preferences, delivery channels, unread state, and escalation rules.
Source packages
Start with packages/modules/notifications, then use the spec and runtime packages as compatibility boundaries.
- packages/libs/notification
Platform stance
Define the domain once. Render web and mobile with platform-native shells after contract, role, tenant, and policy resolution.
Canonical surfaces
- Preference contracts
- Delivery-channel bindings
- Unread and escalation views
Implementation notes
- Resolve preferences before dispatch.
- Use mobile-native notification affordances while keeping delivery rules contract-owned.
Lifecycle
Implement delivery loops, review evidence, release readiness, and managed lifecycle guidance.
Operate safely
Add auditability, migrations, policy controls, and trustworthy release behavior from the start.
Why ContractSpec
Keep educational and comparison content reachable without letting it define the primary OSS learning path.