← all decisions

ADR-003: Default deploy stack per project shape

Status: accepted · Date: 2026-04-18


Context

Projects fall into a small number of shapes, each with a different deploy story:

Rather than decide hosting fresh for every new project, we pick defaults per shape so a new project inherits a proven pipeline on day one.

Decision

ShapeDefault stackBuildRationale
Web backend / full-stackRailway, managed Postgres, staging + prod environmentsGitHub Actions → Railway CLI deployStaging + managed DB are the two features that actually matter; Railway is the cheapest way to get both.
Mobile appGitHub Actions builds signed artifactSigned APK/AAB upload; store distribution is manual for nowStores are the deploy target — no host needed.
Static site / docsCloudflare Pages or GitHub PagesGitHub Actions auto-deploy on push to mainFree, fast, pairs cleanly with the DNS we already own.

All web backends follow the staging-before-prod rule (ADR-001). All deploys post to the GitHub Deployments API so the pipeline-health monitor (ADR-002) can detect deploy regressions uniformly.

Consequences

Alternatives considered