Repository navigation
v1.4.0 — Railway support
What's new
Railway deployment check — predeploy-check now supports Railway
alongside Render and Vercel. The new check catches five confirmed
real-world Railway failure patterns:
Hardcoded port — detects app.listen(3000) without a process.env.PORT
fallback. Railway injects the port at runtime, so hardcoded values cause
apps that build and run fine locally to silently fail in production.
Invalid builder — flags unsupported values in railway.toml or
railway.json. Only nixpacks, dockerfile, heroku, and railpack
are valid. Any other value causes a silent build failure.
Missing Nixpacks build plan — warns when there's no package.json,
requirements.txt, or nixpacks.toml, meaning Nixpacks cannot detect
the project type and will refuse to build.
Monorepo without explicit routing — warns when multiple subdirectories
each contain a package.json and no watchPaths is configured, since
Nixpacks won't know which app to deploy.
Missing start command — flags when neither package.json nor any
Railway config file provides a start command.
The Railway check skips automatically on non-Railway projects — it only
runs when railway.toml, railway.json, or nixpacks.toml is detected,
so Render/Vercel-only users see no change.
Testing
Added 18 new tests for the Railway check (100 total across the full suite).
Config
railway is now a valid check ID in predeploy.config.js:
module.exports = {
checks: { 'railway': false } // disable if needed
};Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.4.0