Quick Start
Deploy your first project in 5 minutes.
Prerequisites
- A GitHub or GitLab account
- A repository with a
Dockerfile(or a supported runtime — Node.js, Python, Java) - A Swisblade account
Step 1: Create stack.json
Add a stack.json file to the root of your repository:
{
"name": "hello-world",
"services": {
"api": {
"source": { "repo": "github.com/you/hello-world.git", "ref": "main" },
"type": "app",
"runtime": "node",
"port": 3000,
"public": true
}
}
}
This defines a single service that will be built from your repo and exposed publicly.
If your repo doesn't have a Dockerfile, Swisblade auto-detects your runtime and builds one for you using Nixpacks. Supported runtimes: Node.js, Python, Java.
Step 2: Create a project
- Go to the dashboard and click Create Project.
- Choose how to define your stack:
- Git Repo — Point to a repository that contains a
stack.json. - Visual Builder NEW — Build your stack visually with forms — no JSON needed. Pick services, databases, runtimes, and connections from a UI.
- stack.json — Paste your
stack.jsondirectly.
- Git Repo — Point to a repository that contains a
- Enter a project name (e.g.,
hello-world). - If using Git Repo or Visual Builder with private repos, provide a Personal Access Token (PAT).
- Click Create & Deploy.
Use the Visual Builder tab to assemble your stack with a form. Add app services, containers, and databases, select infrastructure (PostgreSQL, Redis, etc.), and connect services together — all without writing a single line of JSON. The builder generates the exact same stack.json behind the scenes.
Step 3: Watch the deploy
The dashboard shows a real-time deploy log. You'll see:
- Cloning your repository
- Building the Docker image
- Starting the container
- Health check passing
Once the deploy succeeds, your service is live.
Step 4: Access your app
Your public service is available at:
https://api-{project-slug}.swisblade.com
The project slug is shown in the dashboard (e.g., a1b2c3d4-hello-world).
Step 5: Add a database
Need a database? Update your stack.json:
{
"name": "hello-world",
"services": {
"api": {
"source": { "repo": "github.com/you/hello-world.git", "ref": "main" },
"type": "app",
"runtime": "node",
"port": 3000,
"public": true,
"needs": ["postgres"]
}
}
}
Commit, push, and redeploy from the dashboard. Swisblade will:
- Provision a PostgreSQL database
- Create a dedicated user with connection limits
- Inject
DATABASE_URLinto your service automatically
Your app can use process.env.DATABASE_URL immediately — no configuration needed.
What's next
- Add more services: Services reference
- Add environment variables: Environment Variables
- View logs and traces: Logs & Traces