Skip to main content

SvelteKit

In this guide, you will create a new SvelteKit application and deploy to Cloudflare Workers.

Already have a SvelteKit project?

Run wrangler deploy in a project without a Wrangler configuration file and Wrangler will automatically detect SvelteKit, generate the necessary configuration, and deploy your project.

npx wrangler deploy
yarn wrangler deploy
pnpm wrangler deploy

Learn more about automatic project configuration.

First deploy fails with `Types file not found`

When Wrangler configures an existing SvelteKit project, it runs the Svelte CLI (sv add) to install the Cloudflare adapter. This adds wrangler types --check to the build script in your package.json. The types file does not exist yet, so the first build fails with the following error:

✘ [ERROR] Types file not found at worker-configuration.d.ts.

To fix this, generate the types file, then deploy again:

npx wrangler types
yarn wrangler types
pnpm wrangler types
npx wrangler deploy
yarn wrangler deploy
pnpm wrangler deploy

You only need to do this once. Wrangler has already created your Wrangler configuration file, so the second deploy skips project setup.

1. Set up a new project

Use the create-cloudflare CLI (C3) to set up a new project. C3 will create a new project directory, initiate SvelteKit's official setup tool, and provide the option to deploy instantly.

To use create-cloudflare to create a new SvelteKit project with Workers Assets, run the following command:

npm create cloudflare@latest -- my-svelte-app --framework=svelte
yarn create cloudflare my-svelte-app --framework=svelte
pnpm create cloudflare@latest my-svelte-app --framework=svelte

After setting up your project, change your directory by running the following command:

cd my-svelte-app

2. Develop locally

After you have created your project, run the following command in the project directory to start a local server. This will allow you to preview your project locally during development.

npm run dev
yarn run dev
pnpm run dev

3. Deploy your Project

Your project can be deployed to a *.workers.dev subdomain or a Custom Domain, from your own machine or from any CI/CD system, including Cloudflare's own.

The following command will build and deploy your project. If you're using CI, ensure you update your "deploy command" configuration appropriately.

npm run deploy
yarn run deploy
pnpm run deploy

Bindings

Your SvelteKit application can be fully integrated with the Cloudflare Developer Platform, in both local development and in production, by using product bindings. The SvelteKit documentation provides information about configuring bindings and how you can access them in your SvelteKit hooks and endpoints.

With bindings, your application can be fully integrated with the Cloudflare Developer Platform, giving you access to compute, storage, AI and more.

Bindings

Access to compute, storage, AI and more.