[ Web Proxy ]
URL:
Viewing: https://developers.cloudflare.com/workers/configuration/sites/start-from-scratch/ [Back]  [Original]

Start from scratch Cloudflare Workers docsSkip to content
SearchCtrlKLog in
  1. Home
  2. /Workers
  3. /
  4. /Workers Sites
  5. /Start from scratch

Start from scratch

Last updated Apr 23, 2026Copy as MarkdownView as MarkdownAgent setup
OverviewGetting startedProject layoutCustomize the wrangler.jsonc file:

Use Workers Static Assets Instead

You should use Workers Static Assets to host full-stack applications instead of Workers Sites. It has been deprecated in Wrangler v4, and the Cloudflare Vite plugin does not support Workers Sites. Do not use Workers Sites for new projects.

This guide shows how to quickly start a new Workers Sites project from scratch.

Getting started

  1. Ensure you have the latest version of git and Node.js installed.

  2. In your terminal, clone the worker-sites-template starter repository. The following example creates a project called my-site:

    git clone --depth=1 --branch=wrangler2 https://github.com/cloudflare/worker-sites-template my-site
  3. Run npm install to install all dependencies.

  4. You can preview your site by running the wrangler dev command:

    wrangler dev
  5. Deploy your site to Cloudflare:

    npx wrangler deploy

Project layout

The template project contains the following files and directories:

  • public: The static assets for your project. By default it contains an index.html and a favicon.ico.
  • src: The Worker configured for serving your assets. You do not need to edit this but if you want to see how it works or add more functionality to your Worker, you can edit src/index.ts.
  • wrangler.jsonc: The file containing project configuration. The bucket property tells Wrangler where to find the static assets (e.g. site = { bucket = "./public" }).
  • package.json/package-lock.json: define the required Node.js dependencies.

Customize the wrangler.jsonc file:

  • Change the name property to the name of your project:

    {
      "$schema": "./node_modules/wrangler/config-schema.json",
      "name": "my-site"
    }
    "$schema" = "./node_modules/wrangler/config-schema.json"
    name = "my-site"
  • Consider updatingcompatibility_date to today's date to get access to the most recent Workers features:

    {
      "compatibility_date": "yyyy-mm-dd"
    }
    compatibility_date = "yyyy-mm-dd"
  • Deploy your site to a custom domain that you own and have already attached as a Cloudflare zone:

    {
      "route": "https://example.com/*"
    }
    route = "https://example.com/*"

    Note

    Refer to the documentation on Routes to configure a route properly.

Learn more about configuring your project.

PreviousStart from existingNextStart from Worker

Was this helpful?

YesNo
Edit pageReport issue
[]

Web Proxy Viewer  |  New URL  |  Original Page