Skip to content

ADRs

ADRs are deferred until a decision needs more than a focused reference page. Use this page as the candidate index: it names the choices likely to deserve full decision records later, while keeping the current durable explanation in the page that already owns the working context.

Use roadmap sections and focused docs pages first. Promote a decision to a full ADR when it is:

  • Durable enough that future contributors will ask why it happened.
  • Cross-cutting across apps, packages, infrastructure, operations, or docs.
  • Likely to be revisited, challenged, reversed, or applied to a future environment.
  • More about tradeoff history than day-to-day procedure.

Do not create an ADR only to repeat a runbook, command reference, or page that already explains the current contract.

Candidate DecisionCurrent Reference HomeWhy It May Need An ADRPromote When
Use Astro/Starlight for the docs appDocs Content Model and Docs HostingDocs framework choice affects content structure, hosting, search, generated artifacts, and future public docs maturity.The docs site gains previews, versioning, generated API docs, or public audience requirements.
Host docs as an independent static surfaceDeployment and Docs HostingStatic docs hosting is intentionally separate from the app/API runtime, wake path, database, and rollback lane.Docs deployment policy grows beyond the current single static site and publish workflow.
Use Pulumi TypeScript as the first infrastructure implementationInfrastructure Change PolicyIaC language and state choices shape graph review, generated topology, output contracts, and provider posture.A second environment, provider, or IaC boundary makes the original tradeoffs worth preserving.
Stay AWS-first while keeping provider-aware vocabularyInfrastructure Change PolicyThe project deliberately avoids pretending to be cloud-neutral while still preserving provider-aware concepts.A second provider becomes concrete, or AWS-first assumptions start affecting package/API design.
Separate app/API deploy from infrastructure mutationDeployment Workflows and DeploymentRoutine CD intentionally deploys images and smoke checks without running pulumi up.Infrastructure automation starts moving toward guarded workflow-driven updates.
Use a sleepable single-host deployed-dev runtimeDeployed Dev Environment and Deployed Dev LifecycleCost, wake UX, containerized Postgres, and shared runtime lifecycle are tied together in the first cloud-backed target.Staging, production, managed database, multi-host, or always-on topology work begins.
Treat deployed-dev data as disposable and backup as learningData Durability And RecoveryThe current posture is an explicit non-production durability choice that future environments must not inherit blindly.A backup/restore drill lands, or a later environment needs formal RPO/RTO and restore policy.
Keep the public CLI separate from typed operations helpersWavemap CLI and Wavemap CLI Command ReferenceThe package boundary keeps public route compatibility separate from typed planning, validation, and shell execution.CLI distribution, generated command docs, or cross-environment command profiles become real.
Split media provider, execution target, and environmentMedia Storage And Delivery and Media Workflow And ValidationThe media model avoids persisting emulator identity while still supporting mocked, emulator, and cloud execution paths.Cross-entity media, direct uploads, second-provider migration, or production media policy begins.
Keep raw topology private and publish sanitized projectionsGenerated Documentation and Infra Topology ProcessingGenerated infra evidence can expose sensitive-adjacent details; the public docs site receives only reviewed projections.Automated topology publication, live inventory, graph diffs, or public generated diagrams mature.
Treat i18n as a platform package, not a frontend folderi18nLocalization now spans frontend runtime, backend errors, email copy, generated assets, CI, and domain-code contracts.A new app/runtime consumes i18n, or generated assets/CDN behavior becomes environment-specific.
Centralize shared API contracts across front end and back endAPI ContractsShared route, DTO, envelope, permission, query, and domain-code contracts prevent app-local drift.A new app, API version, generated client, or public API surface changes the contract boundary.

Some choices are important but should keep maturing in their focused pages before ADR promotion:

  • Association-row modeling and high-cardinality relationship UX.
  • Query controls, URL state, and saved views as reusable collection-page contracts.
  • Server error localization and automated email copy through i18n adapters.
  • Cloud automation permission review as a standing operations gate.
  • Admin content model and future CMS authoring workflow.

These may become ADRs if they start shaping multiple packages, public workflows, or future environments.

When the first full ADR is needed, prefer one page per decision with:

  • Status.
  • Context.
  • Decision.
  • Consequences.
  • Alternatives considered.
  • Current implementation references.

Keep full ADRs concise. They should preserve the reasoning that will be hard to recover later, not replace the reference pages that explain how the system works today.