Architecture
The system in one page, with pointers into the living blueprint
An Ouranos instance owns one DNS zone Z and derives everything from it:
the landing at the apex, the product at app.Z, the docs at docs.Z, a
dev. subtree for the development environment, and pr-<n>.dev.Z for
per-pull-request previews.
The runtime is serverless end to end: apps/app runs on Lambda via OpenNext
behind CloudFront with assets on S3; apps/landing and apps/docs are
static exports on S3 behind CloudFront; the database is Aurora DSQL;
transactional email goes out through SES. Everything is Terraform-managed,
tagged with the project prefix, and costs (near) nothing while idle.
Application code follows a ports-and-adapters layout: packages/domain is
the framework-free core with a single authorize(actor, action, resource)
enforcement point, packages/adapters implements the ports (database,
email, logging), and the Next.js apps stay thin.
The living blueprint
The authoritative architecture blueprint lives in the repository under
docs/architecture/ — start with overview.md (system context, containers,
components) and follow its index. It stays current by mechanism, not
discipline: CI regenerates the resource inventory and blocks any change to
reality that does not update the blueprint.