Updated 30 Aug 2026: Railway's August 28 transition is now effective, and current docs resolve the earlier ambiguity: new services cannot opt into Config as Code, while only services already using railway.toml/railway.json keep it until the December 1 hard cutoff. The proposal updates the migration boundary and removes the prior 'new services in existing projects should be fine' uncertainty.

Key details

  1. The August 28, 2026 Config-as-Code transition is now in effect.
  2. Railway’s current docs say new services cannot opt into Config as Code.
  3. Only services already using `railway.toml` or `railway.json` retain legacy support.
  4. December 1, 2026 remains the documented hard cutoff.
  5. The replacement uses `.railway/railway.ts` and a TypeScript Infrastructure-as-Code SDK.
  6. Current Railway CLI commands include `railway config init`, `pull`, `plan` and `apply`.
  7. The replacement represents project-level infrastructure rather than only deployment-time settings for one service.

What builders should take away

  1. Search every Railway-backed repository for `railway.toml` and `railway.json` and map each file to the live service that still depends on it.
  2. Do not create migration plans that assume a newly added service can temporarily stay on Config as Code; Railway now documents that new services cannot opt in.
  3. Use `railway config pull` to capture live state and review `railway config plan` before applying the new desired-state definition to production.
  4. Test build commands, migrations, health checks, environment-specific behavior and service references explicitly after migration rather than assuming syntax translation proves behavioral parity.
  5. Complete the migration early enough to leave rollback/debugging time before December 1.

What changed

Railway’s Config-as-Code retirement reached its first enforcement stage on August 28, 2026. Current Railway documentation now states unambiguously that new services cannot opt into Config as Code. Existing `railway.toml` and `railway.json` files continue working only for services that already use them, and December 1, 2026 remains the documented hard cutoff. This resolves an ambiguity in the original August 21 changelog, which said services in new projects would stop using Config as Code while new services in existing projects “should be fine.” Railway’s replacement remains the project-wide TypeScript Infrastructure-as-Code model at `.railway/railway.ts`, with CLI operations for initializing, importing current state, planning changes and applying them.

Why it matters

The migration window is now operational rather than hypothetical. Teams can no longer defer the architecture decision by creating another service on the old config model, and existing repositories have roughly three months to move before their legacy configuration stops being supported. The replacement also has different semantics: Config as Code applied per-service build and deploy overrides, while Railway’s IaC workflow represents project-level desired state. Builders should therefore treat migration as infrastructure-state work, not as a file-format conversion.

Config as Code is now legacy-only

Railway’s current documentation says new services cannot opt into Config as Code. The only remaining supported use is for services that already have `railway.toml` or `railway.json` attached. Those legacy services retain the old behavior only until December 1, 2026.

The December 1 deadline remains hard

Railway labels December 1 as the hard cutoff for existing Config-as-Code files. Teams that still depend on repository-defined build commands, pre-deploy commands, health checks, restart policies, environment overrides or other legacy settings need a tested replacement before that date rather than assuming the files will be ignored harmlessly.

The replacement manages a whole project

The preferred model uses `.railway/railway.ts` and Railway’s TypeScript SDK. The CLI exposes `railway config init`, `pull`, `plan` and `apply`, allowing teams to import current Railway state, review a proposed infrastructure diff and apply project-wide changes. This is broader than the old per-service deployment-override model.

Migration should begin with an import and diff

For an existing production project, the safest path is to pull current state into the TypeScript representation, inspect it against the live dashboard and run `railway config plan` before applying anything. Variables, services, databases, domains, replicas and other project resources can now participate in the desired-state model, so a mechanical TOML-to-TypeScript rewrite can miss important semantics.

The ambiguity BTN was watching is resolved

The original launch wording left open whether a new service inside an existing project could continue adopting Config as Code after August 28. Railway’s current documentation now says simply that new services cannot opt in. Existing services already on Config as Code remain the only legacy exception until December 1.

What to watch next

  • Whether Railway publishes additional migration tooling or parity guidance before December 1.
  • Whether the TypeScript IaC SDK receives stronger stability/versioning guarantees as more legacy users migrate.
  • Any documented gaps between legacy service-level settings and the project-wide IaC representation.
  • Whether Railway changes or extends the December 1 hard cutoff.

Still unclear

  • Railway’s current documentation clearly resolves new-service eligibility, but the newer IaC workflow continues to evolve and production migrations should still be validated against the current CLI/SDK version.
  • The hard cutoff describes Config-as-Code support; the exact failure behavior of an unmigrated legacy repository after December 1 is not fully described in the reviewed documentation.

Sources

Direct reading behind this dossier.

3 sources
Using Config as Code
Railway Docs official_documentation

Current source stating Config as Code is deprecated, new services cannot opt in, existing users retain it only until the December 1 hard cutoff, and `.railway/railway.ts` is preferred.

Railway CLI
Railway Docs official_documentation

Current `railway config init`, `pull`, `plan` and `apply` workflow for Infrastructure as Code.

Discussion

Discussion is reader-contributed. Comments are not part of the BTN dossier or its editorial evidence.

0 visible comments

Join the discussion

Keep comments useful and relevant. Reader contributions may be moderated and are not BTN editorial evidence.

Sign in to comment