How Previews Work
When you create a preview, Springwinter registers a new ECS task definition scoped to the target branch. It then builds and deploys the branch code exactly as it would for a production deployment, using a separate task and a unique URL. For example, if your production web server lives atapi.acme.springwinter.app and you create a preview for the branch feat/new-checkout, the preview URL might be api--feat-new-checkout.acme.springwinter.app.
The preview task runs independently of production — you can redeploy, update environment variables, or tear it down without any impact on the live service.
Previews are not created automatically on every push. You create them explicitly through the dashboard or API. Once a preview exists, auto-deploy is active: every subsequent push to that branch redeploys the preview automatically.
Creating a Preview
Send aPOST request to the previews endpoint for the resource, including the branch name in the request body:
- Web Server
- Worker
- Static Website
Managing Previews
Once a preview is running, you can inspect or remove it using the following endpoints. The same pattern applies to workers and static websites — replaceweb_servers with workers or static_websites as needed.
Retrieve a preview:
Preview Observability
Each preview has its own logs, metrics, and environment endpoint so you can debug it just like a production service.Logs
Stream CloudWatch logs for the preview task.
GET /api/projects/{project_id}/web_servers/{id}/previews/{preview_id}/logsMetrics
View CPU, memory, request, and error metrics scoped to the preview.
GET /api/projects/{project_id}/web_servers/{id}/previews/{preview_id}/metricsEnvironment
Read or update the environment variables for this specific preview.
GET /api/projects/{project_id}/web_servers/{id}/previews/{preview_id}/environmentPUT request to the preview’s environment endpoint:
PUT endpoint works and the replace-all semantics you need to be aware of.
Best Practices
Recommended workflow for QA
Recommended workflow for QA
- Open a pull request on GitHub for your feature branch.
- Create a preview via the Springwinter dashboard or API, pointing at the PR branch.
- Share the preview URL with your QA team or include it in the PR description.
- Push additional commits to the branch — the preview auto-redeploys on each push.
- When the PR is approved and merged, delete the preview to stop incurring AWS costs.
Preview environments consume AWS resources in your account and contribute to your monthly cost. Delete previews you are no longer actively using to avoid unnecessary charges. Springwinter displays per-preview cost estimates on the resource detail page.