Skip to main content
Each quickstart is a complete slipway.yaml plus the framework-specific settings that otherwise bite: host allow-lists, binding to 0.0.0.0, and where migrations go.

Next.js

Server-rendered Node, or a static export.

Django

Gunicorn, Postgres and migrations on every deploy.

Rails

Puma, Postgres and a Sidekiq worker.

Go

A compiled binary in a small runtime image.

FastAPI

Uvicorn, Postgres and autoscaling.

Express

Node, Postgres and Redis.

Static site

Astro, Vite or Hugo, served from the CDN.

Prebuilt image

Run an image from a public or private registry.

App with Postgres

Wire a managed database to any service.

Common to all of them

Bind to 0.0.0.0. A server bound to 127.0.0.1 is unreachable from outside its own container, which shows up as a deploy that never becomes healthy. Allow slipway’s hostname. Django, Rails and Next.js all check the Host header and return 403 for one they do not recognise. Pass ${service.<name>.host} into the setting each framework uses. Put migrations in preDeploy. They run in the freshly built image before the rollout, and the deploy proceeds only if they succeed. Use a disk or object storage for uploads. The container filesystem is lost on every deploy. If something does not come up, Troubleshooting is keyed on the errors you actually see.