Build guide · six decisions

From sheet to stage.

This is the reproducible path behind FOLDSPACE: concept first, code-native geometry, resilient fallbacks, then three deliberate review passes.

01

Choose a material rule.

Start with one physical behavior, not a list of visual effects. Here the rule was simple: every motion must feel like creasing, hinging, lifting, or settling paper.

02

Explore before locking.

Three incompatible concepts were written before code: a fold choir, a print conveyor, and a paper weather system. The fold choir won because its fallback could remain the same artwork, only still.

03

Lock the visual contract.

The full decision record lives in DESIGN.md: six tokens, two variable typefaces, one signature, exact contrast pairings, banned patterns, payload targets, and the reduced-motion interpretation.

04

Build the object.

  • Make each face a real element with a clear transform origin.
  • Use perspective and preserve-3d on the smallest useful scene.
  • Link the main choreography to scroll with CSS timelines.
  • Use JavaScript only to toggle discrete states for the tactile desk.
05

Design the exit routes.

Reduced motion opens the stage and stands the letters upright. No JavaScript leaves the complete scroll story and a static desk. No media or WebGL changes nothing because the signature never depends on either.

06

Repair, deepen, reduce.

The first pass fixes defects and mobile composition. The second tests one depth hypothesis. The third removes anything that competes with the origami stage, then runs accessibility, performance, CSP, and route checks.

Read the exact prompts

Deploy

Publish on Cloudflare Pages.

From the project root, replace SITE_SLUG with a unique Pages project name. If your production branch is not main, replace that value too.

npm ci
npm run build
npx wrangler whoami
npx wrangler pages project create SITE_SLUG --production-branch main
npx wrangler pages deploy dist --project-name SITE_SLUG --branch main

If npx wrangler whoami reports that no session is active, run npx wrangler login, finish the browser sign-in, then run npx wrangler whoami again before continuing.

Wrangler prints the public *.pages.dev URL after deployment. For later releases, rebuild and repeat only the final deploy command.