---
title: "Deploy SvelteKit over MCP with while.sh"
url: https://while.sh/en/guides/deploy-sveltekit/
author: "Aloïs Oddon, co-founder of Nextmap"
updated: 2026-11-02
---

# Deploy a SvelteKit app from your AI agent, over MCP

Your AI agent wrote your SvelteKit app. Connected to while over MCP, it also deploys it, over HTTPS and in France, with its forms and its server routes, and without a Dockerfile.

## Prerequisites

- A SvelteKit app. Your agent adds the Node adapter if it's missing.
- An AI agent that works in a terminal: Claude Code, Codex, Cursor or Gemini CLI.

## Step 1: Give your agent these instructions

Open your agent in your app's folder and paste these instructions into it:

```text titre="Instructions"
Connect to while with my account (while.sh/agents), then deploy my app.
```

Without an account, your agent deploys your app as a trial, in one request. To keep it, open the link it gives you and create your account.

With your account, your agent adds while's MCP server itself. If it asks you to, restart it. On the first call to while, a page opens in your browser. In Claude Code, if it doesn't open, type /mcp, choose while, then Authenticate. On that page, choose your app, or "A new app", then click Authorize.

## Step 2: Open your app

Your agent gives you your app's address, for example `https://mon-appli.while.cloud`, over HTTPS.

## What your agent does

It writes while.yaml at the root of your app:

```yaml titre="while.yaml"
apiVersion: while/v1
project: mon-appli
services:
  - name: web
    port: 3000
    health:
      path: /
    env:
      ORIGIN: https://mon-appli.while.cloud
```

Your app is built, then started with `node build`, which listens on the port it receives in `PORT` (source 1). `ORIGIN` gives SvelteKit your app's public address: without it, your forms would be refused as coming from somewhere else (source 1). If your app doesn't have the Node adapter yet, your agent adds it.

## Add a database

> You, to your agent: Add a PostgreSQL database.

Your agent declares the database in while.yaml, and its address reaches your code in `DATABASE_URL`. It is backed up every day, and can go back to a precise moment if needed.

## Restrict your app to your colleagues

> You, to your agent: Restrict the app to people in the company.

Your agent adds two lines to the service:

```yaml titre="while.yaml"
    access: internal
    email_domains: [acme.com]
```

Once your Google Workspace or Microsoft 365 is connected to while, on the Pro plan, your colleagues open it with their usual account, and your code receives their name and email address, with no sign-in page to write.

## Share with a customer, protected by a password

> You, to your agent: Open the app to our customer, with a password.

Your agent makes the app private. Then, on the app's page in while, you create a link that lasts 1, 7 or 30 days, with a password your agent will never see.

## Move to your own domain

> You, to your agent: Put the app on app.acme.com.

Your agent declares the domain and updates `ORIGIN`. You add the DNS records it gives you, and the HTTPS certificate follows.

## Go back to the previous version

> You, to your agent: Go back to the previous version.

In the 30 minutes after a deployment, the previous version comes back in a second. After that, it takes a few seconds. Once the previous version is back, your agent reads what broke in while's logs, fixes it and deploys again.

## Next steps

- [Deploy a Nuxt app](/en/guides/deploy-nuxt/)
- [Deploy a static site](/en/guides/deploy-static-site/)
- [Deploy a Node.js API and its PostgreSQL database](/en/guides/deploy-node-api-postgresql/)

## Sources

1. [SvelteKit, the Node adapter (node build, PORT, ORIGIN)](https://svelte.dev/docs/kit/adapter-node), 2026-11-02

## Questions

### Do I need to write a Dockerfile?

No. while recognizes SvelteKit with its Node adapter, then builds it and starts it with node build.

### What about a fully static SvelteKit site?

With the static adapter, it deploys like a static site, with an HTTP cache.

### Where is my app hosted?

In France, by Nextmap, a French company.
