One command
buddy deploy checks prerequisites, resolves the environment, builds the web, docs, blog, and API, then publishes the infrastructure.
config/cloud.ts describes the site, the DNS, the certificates, the CDN, and the mail records in TypeScript. buddy deploy builds every surface and publishes that infrastructure, so the thing that runs in production is described by a file you can review in a pull request.
All of it in the same install, with nothing to wire together first.
buddy deploy checks prerequisites, resolves the environment, builds the web, docs, blog, and API, then publishes the infrastructure.
Records and certificates are declared next to the site they belong to, so a new hostname is a config line rather than a console visit.
Buckets, distributions, and cache invalidation come from the same config the application reads.
SES identities plus the SPF, DKIM, and DMARC records that make them deliver, published with everything else.
The same application deploys to a long-running server or to Lambda, chosen in config.
The shipped CI workflow runs buddy deploy on every green push to main, and finishes green with a notice when a repo has no deploy secrets yet.
Buddy scaffolds, runs, and ships this the same way it does the rest of the app.
These share the same models, config, and types, so using them together costs nothing extra.