Introducing the new Shuttle platform! We’ve supercharged what developers love about Shuttle, combining our powerful developer experience with enterprise-grade infrastructure. For developers, we’ve kept it simple and intuitive - no complex configs, just focus on your Rust code. On the production side, we’ve implemented VM-level isolation, increased reliability and scalability to meet real-world demands. From solo developers to enterprise teams, Shuttle now offers the perfect blend of ease and production-ready robustness.

Read the full announcement here!

Domain and CLI changes

Access the NEW platform

Access the OLD platform (for existing users)

Changelog

Changed

  • ⚠️ The Shuttle Console is located at console.shuttle.dev instead of console.shuttle.rs.
  • ⚠️ Project subdomains are under *.shuttle.app instead of *.shuttleapp.rs
  • ⚠️ A new binary shuttle is now provided for using the new platform (read more).
  • Project names are no longer globally unique, only unique per account. Project URLs now have some random characters at the end of its default subdomain, e.g. myproject-3h5n.shuttle.app.
  • Builds and deployments are now fully separated. This allows for more specialised build workflows, and more efficient deployment hosting.
    • Builds run on AWS CodeBuild, and now produce a Docker image instead of just a binary. This implies we can support more languages than Rust in the future. ✨
    • Deployments run on AWS ECS with Fargate.
  • CLI commands:
    • deploy: no longer runs tests, so --no-test has no effect.
    • deploy: no longer denies dirty deployments by default (read more).
    • status: use deployment status instead.
    • stop: use deployment stop instead.
    • project status: projects no longer have a state, so --follow has no effect.
    • login: automatically gets the API key from the API after an approval in Shuttle Console. No more copy + pasting!
  • Max archive size for deployments is now 100 MB (up from 50MB).
  • Secrets.toml must now be in the root of the cargo workspace (--secrets <file> can still be used for a custom location).
  • Shuttle.toml:
    • Renamed the assets field to deploy.include (read more).
    • For static files to move from the build stage to the runtime container, you must specify build.assets (read more).
  • Shared Postgres resource:

Added

  • The Shuttle proxy, that proxies HTTP requests to user projects, now sets the X-Forwarded-For header on all requests, with the IP of the original caller.
  • CLI commands:
    • Commands that target a project: You will now be prompted to link your project directory to a Shuttle project.
    • In addition to --name <name>, you can also use --id <id> to target specific projects. This overrides project linking.
    • project link: explicitly re-link the project directory to a Shuttle project.
    • certificate command for adding and managing SSL certificates for custom domains.
    • deploy --no-follow to not poll the deployment status until it reaches a running or failed state.
    • account to show information about your account.
    • project update name to rename a project.

Removed

  • Shuttle Persist resource and the persistent file volume. (We plan to implement an S3-based replacement.)
  • MongoDB Shared Database resource. (Removed due to having very few users.)
  • AWS RDS Database resource. (We plan to add a replacement later.)
  • CLI commands:
    • project stop
    • project restart
    • clean
  • The Teams feature has been temporarily disabled. We plan to enable it after improvements have been made.