Deployment Guide

Build & Deploy to Cloudflare

How changes go from this computer to the live site. Since October 2026 the website is hosted for free on Cloudflare; one command builds and publishes everything.

โš ๏ธ Deploy with npm run deploy โ€” never upload files by hand The command builds the site, adds the photos and documents, and uploads only what changed. There is no File Manager step and no need to delete old JS files.

Standard Deployment Workflow

1

Make your changes

Edit the source files in the project folder. Test locally first using:

npm run dev

Then open http://localhost:5173 (or the next available port) in your browser.

2

Deploy

npm run deploy

This runs three steps automatically:

  1. vite build โ€” compiles all pages into dist/
  2. scripts/copy-server-files.mjs โ€” adds the gallery photos, documents and media from server-files/, plus the PDFs in legal/ and docs/, and removes unpublished drafts
  3. wrangler deploy โ€” uploads dist/ to Cloudflare (only changed files are sent)

The site is live worldwide within a few seconds. Settings live in wrangler.jsonc.

3

Hard refresh

Your browser may still show a cached copy. Hard refresh to see the new version:

Cmd + Shift + R (Mac)  /  Ctrl + Shift + R (Windows)

Adding Photos or Documents

๐Ÿ’ก Keeping a page off the website Add its path to the unpublished list in scripts/copy-server-files.mjs.

Hosting at a Glance

Website hosting ... Cloudflare (free plan, no card) โ€” project "rising-with-melodies"
DNS ............... Cloudflare (nameservers mallory / miles.ns.cloudflare.com)
Domain registration Porkbun ($11.84/year, auto-renew on, expires each Dec 29)
Email ............. Google Workspace for Nonprofits (MX โ†’ smtp.google.com)
Website emails .... Resend (send.risingwithmelodies.org)
Test address ...... https://rising-with-melodies.non-profit-webpage.workers.dev

Supabase SQL Changes

When a new feature requires a database schema change (new table, column, or policy), run the SQL in the correct Supabase project: