Build Backends. Fast. A database is one macro on main, a secret is one argument. Open source Rust.

Joined October 2026
$SHUTTLE is live on @ponsdotfamily Build Backends. Fast. Your infrastructure comes from your code: one annotation on main, and a database is just another argument. No YAML, no consoles. CA: 0x64eb587083a775732f774b930037d7d7aeb36111
34
2
2
44
2,592
Powered by the community.
5
5
94
Running Shuttle locally, in detail ↓
3
55
Testing on your phone? shuttle run --external binds the app to 0.0.0.0:8000 on your local network, and --port 8123 changes the port.
9
Prefer your own database? Pass local_uri to the resource. It can even pull values from Secrets.toml: postgres://postgres:{secrets.PASSWORD}@localhost:16695/postgres
5
shuttle run builds and runs your app the way the platform does, then starts a local provisioner that simulates resources with Docker. Using a database? It starts a local Docker container for it.
25
Shuttle Heroes recognises developers who made exceptional contributions. What it asks: help others on Discord and GitHub, spread the word, create tutorials, posts and videos, and keep contributing to push Shuttle forward.
2
2
102
Get a database by just asking for one in your Rust code.
4
5
139
Inside the shuttle repo. cargo-shuttle is the CLI, runtime runs your service, codegen generates the proc macros, ifc parses Infrastructure from Code, builder holds the Docker build recipes, and mcp is the Shuttle MCP server.
3
133
Everything your app writes to stdout and stderr, plus the build logs: shuttle logs shuttle logs --latest shuttle logs --raw shuttle deployment list Add tracing to Cargo.toml and info!() just works, no subscriber setup needed.
68
Live reload for your backend: shuttle run --bacon Save a file and bacon runs shuttle run again for you.
1
2
99
Need more power? Scale vertically from the code itself: #[shuttle_runtime::main(instance_size = "m")] Sizes run from xs (0.25 vCPU, 0.5 GB) up to xxl (8 vCPU, 16 GB).
1
143
Custom build steps, still experimental: three optional scripts at the project root. shuttle_prebuild.sh runs before cargo build shuttle_postbuild.sh runs after it shuttle_setup_container.sh prepares the runtime image A nightly toolchain is two lines.
1
109
Shuttle inside a cargo workspace ↓
16
14
355
Want to run with and without Shuttle? The standalone-binary example keeps both, which makes adding Shuttle to an existing project gradual.
28
Need different behaviour on Shuttle? Add a cargo feature named shuttle. Shuttle turns it on and disables default features, unless you add default to the shuttle array.
33
One Shuttle service per workspace: the first binary using #[shuttle_runtime::main] is the one Shuttle runs locally and deploys. Shuttle.toml and Secrets.toml go in the workspace root.
3
170
Your own domain in three steps: 1. Buy a domain 2. Point a DNS record at Shuttle 3. shuttle certificate add <domain> HTTPS on your own domain, right next to the default project address.
4
1
1
6
338