Cloudflare Pages deployment
Emergence is deployed to the Direct Upload project emergence-notes-preview-8a14 on Cloudflare Pages. The production URL is https://emergence-notes-preview-8a14.pages.dev/, and the production branch label is main. The source repository remains private; Cloudflare receives only the generated files under site/public/ when a deployment is run.
The versioned deployment configuration is site/wrangler.jsonc. From site/, npm run deploy:cloudflare runs the type and formatting checks, the test suite, a clean Quartz build, and then uploads public/ with Wrangler. This is a deliberate Direct Upload workflow rather than a Git integration: pushing main and deploying the site are separate states, and a Git push does not publish automatically.
Current access and discovery mode
The Pages site is public to anyone who knows its URL. It is intentionally difficult to discover, not private:
- every generated HTML page carries
noindex, nofollow, noarchive, noimageindexinquartz/components/Head.tsx; - sitemap and RSS emission are disabled in
quartz.config.yaml; and unlisted: truecontinues to exclude a page from collection listings and client search data while leaving its direct HTML route available.
Do not add a site-wide robots.txt crawl block as a substitute for noindex. A crawler has to fetch the HTML to observe the robots meta directive; blocking the crawl can leave a bare URL eligible to appear in search results.
This mode is not suitable for confidential material. A page that must not be available to arbitrary visitors needs authentication or must remain undeployed.
Verification
Before deployment, the deploy:cloudflare script runs the repository checks, tests, and build. Also confirm that:
- generated HTML contains the global robots meta directive;
sitemap.xmlandindex.xmlare absent fromsite/public/;- an
unlisted: truetest page is absent fromstatic/contentIndex.jsonbut its direct HTML file exists; and - after deployment, the production URL and one direct unlisted route load without console errors on desktop and mobile.
For a later fully public launch, make one explicit publishing decision that removes the global robots meta directive and re-enables sitemap and RSS. Review the public URL, canonical metadata, and all previously unlisted pages separately; changing the hosting mode must not silently publish draft content.