Skip to main content
Before you start, make sure you have the following tools installed and accounts created. Each item below is required to run the project locally and contribute.

Runtime and package manager

Node.js v24+

The project requires Node.js v24 or later. Check your version:
node --version
If you need to install or upgrade Node.js, use the official installer or a version manager like nvm or fnm.
# Using nvm
nvm install 24
nvm use 24

npm v10+

npm v10 or later is required for workspace support. npm ships with Node.js — upgrading Node.js typically satisfies this requirement. Check your version:
npm --version
The project uses npm workspaces to manage the astro-app and studio packages from a single root. Do not use Yarn or pnpm — workspace scripts in package.json are npm-specific.

Accounts

Sanity.io account

Sanity is the headless CMS that powers all content. You need a Sanity account and a project to run the Studio and query content.
  1. Create a free account at sanity.io.
  2. Create a new project (or use an existing one).
  3. Note your Project ID — you’ll need it for your .env file.
Sanity’s free tier includes 2 projects, unlimited editors, 10GB bandwidth, and 500k API requests per month. This project is designed to stay within free tier limits.

GitHub account

A GitHub account is required to clone the repository and contribute via pull requests.
The Sanity Studio sign-in supports GitHub as an OAuth provider. Using the same GitHub account for both Sanity and GitHub simplifies authentication during local development.

Cloudflare account

Cloudflare Pages hosts the production site and the form-submission Worker. You need a Cloudflare account for deployment.
  • Create a free account at cloudflare.com.
  • The project uses Cloudflare Pages, Workers, D1 (database), and KV (session cache).
All services used by this project are available on Cloudflare’s free tier. The Cloudflare account is not required for local development — only for deployment.

Optional tools

These tools are not required to run the app locally but are used in the development workflow:
ToolPurposeInstall
Wrangler CLIPreview SSR builds and deploy Workersnpm install -g wrangler
Sanity CLIDeploy Studio, run TypeGennpm install -g sanity
GitHub CLICreate PRs from the command lineDownload
Playwright browsersRun E2E testsnpx playwright install

Check your setup

Once everything is installed, verify your environment:
node --version   # should print v24.x.x or later
npm --version    # should print v10.x.x or later
git --version    # should print git version 2.x.x
When all three commands succeed, proceed to the Quickstart.