Most affordable · Cloud options
- 01Fly.io · shared-cpu-1x 512 MBFly.io$3.69 USD / month
- 02Railway · HobbyRailway$5.00 USD / month
- 03Droplet Basic · 1 GiBDigitalOcean$6.00 USD / month
Ship every commit with tests and no long-lived keys in GitHub
A good pipeline makes the scariest thing boring: shipping. Every push runs the tests, builds an artifact identified by the commit and deploys it the same way every time. When that breaks, the problem is rarely the tool; it is usually a difference between your machine and the build environment: a Node version, variables that only exist in your terminal, or dependencies you installed by hand.
The other delicate point is credentials. Storing a long-lived AWS key in GitHub secrets works, but if it leaks it stays open until someone rotates it. The alternative is OIDC: GitHub requests temporary credentials from AWS on every run, scoped to one repository and one branch. This page gathers Codifly's guides on that path and the catalog data to choose where to deploy.
Install from the lockfile, run types, lint and tests, and build an artifact tagged with the commit hash. If anything fails, nothing is deployed. What the pipeline doesn't test, nobody tests.
With OIDC: you create a GitHub identity provider in AWS and a role whose trust policy limits the repository and branch. The workflow assumes that role and receives credentials that expire in minutes. The OIDC guide walks through it step by step.
Almost always an environment difference: an unpinned Node or package-manager version, an environment variable missing on the server, file-path casing between macOS and Linux, or dev dependencies the build needs. Reproduce the build in a clean container before blaming the provider.
Tell us your volume and the options you are weighing. We reply in writing with the numbers of your real usage; no commitment.
No provider pays for its position. Indexes come from LLM Stats; prices from each provider's standard API. How we measure
Analysis, guides and new technology comparisons.