Skip to content

Quickstart

This guide takes you from a Git repository to a live, public URL. You do not need to choose a framework, write a Dockerfile, or configure a build — PandaStack auto-detects how to build and run your repo and gives it a *.pandastack.app address.

You can do this three ways: in the dashboard, with the CLI, or through the REST API. All three drive the same platform, create the same resources, and produce the same result.

  1. Sign in. Open dashboard.pandastack.io and sign in. Every account belongs to an organization — the tenant that owns your projects, databases, billing, and team. If you are new, a personal organization is created for you.

  2. Create a project. Click New Project and connect a Git repository. Leave the deploy type on its default — Auto-detect. You do not have to pick static vs. container; the platform decides. Give the project a name — this becomes your public subdomain, so it must be globally unique and a valid DNS label (lowercase letters, digits, and hyphens; up to 63 characters).

  3. Deploy. Confirm to start the first deploy. PandaStack scans the source for abuse, then builds it with Railpack buildpacks, which detect your framework and language version with zero configuration — so the first build works even without a build or start command.

  4. Watch the build. The deployment moves through queued → running → succeeded (or failed). Live build logs stream in the dashboard as the microVM builds your app.

  5. Open your URL. On success your project is live at:

    https://<your-project-name>.pandastack.app

    A pure client-side SPA is published to the global CDN and served with no pod; anything with a server is run as a container. Either way, all traffic is fronted by the PandaStack gateway.

The CLI talks to the same API. Install it, authenticate once, then deploy.

  1. Install and authenticate. Follow Install & auth to install the CLI and log in. The CLI stores a token and resolves your active organization automatically.

  2. Deploy the current directory. From a Git repository, create and deploy a project. See the command reference for the exact flags and options available in your version.

  3. Follow logs and get the URL. The CLI streams build logs over SSE and prints the final *.pandastack.app URL when the deployment succeeds.

Everything the dashboard does is a REST call against https://api.pandastack.io. Requests carry a psk_ API token in the Authorization header; the token encodes your user, organization, and role, so no organization_id is needed. See Authentication for token types and the error/response envelope.

  1. Set your token.

    Terminal window
    export PANDASTACK_TOKEN="psk_your_api_token"
  2. Create a project. Create an auto-detected project from a repository. Substitute your real repository fields; the exact request body is documented in the Projects API.

    Terminal window
    curl -X POST https://api.pandastack.io/v1/projects \
    -H "Authorization: Bearer $PANDASTACK_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
    "name": "my-first-app",
    "type": "auto",
    "repositoryName": "your-org/your-repo",
    "branch": "main"
    }'

    A successful call returns the standard envelope with the created project:

    {
    "success": true,
    "data": {
    "id": "",
    "name": "my-first-app",
    "slug": "container",
    "url": "https://my-first-app.pandastack.app"
    }
    }

    The slug is the resolved deploy type after classification — static or container. On any classification uncertainty (private repo without a token, rate limit, parse error) it safely defaults to container.

  3. Watch the deployment. Creating a project enqueues the first deploy. Poll the project or its deployments to see status move through queued → running → succeeded | failed, or stream logs over the SSE log endpoint (pass the token as ?access_token= on SSE routes). See the Projects API for the exact log and status endpoints.

  4. Visit the URL. Once the deployment succeeds, https://my-first-app.pandastack.app serves your app.

When you create or deploy a project, PandaStack writes the project and deployment rows and a transactional outbox row (topic deploy.requested) in a single database transaction. A relay publishes that message to a queue, and a worker picks it up and runs the build and rollout. This is why a create call returns immediately while the build proceeds in the background. The full model is covered in Core concepts.