> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstarts

> Start from a worked example for your framework.

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](/quickstarts/nextjs)**
>
> Server-rendered Node, or a static export.

> **[Django](/quickstarts/django)**
>
> Gunicorn, Postgres and migrations on every deploy.

> **[Rails](/quickstarts/rails)**
>
> Puma, Postgres and a Sidekiq worker.

> **[Go](/quickstarts/go)**
>
> A compiled binary in a small runtime image.

> **[FastAPI](/quickstarts/fastapi)**
>
> Uvicorn, Postgres and autoscaling.

> **[Express](/quickstarts/express)**
>
> Node, Postgres and Redis.

> **[Static site](/quickstarts/astro-static)**
>
> Astro, Vite or Hugo, served from the CDN.

> **[Prebuilt image](/quickstarts/docker-image)**
>
> Run an image from a public or private registry.

> **[App with Postgres](/quickstarts/postgres-and-app)**
>
> 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](/deploys/troubleshooting) is keyed on the
errors you actually see.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.