data to web

How this site becomes itself.

A small public operating system: source data, generated artifacts, static pages, one Worker, many stable paths.

01

Source

Human-authored notes, page registry, restored project folders, Hanzi data, Unicode data, maps, images, and generated visual inputs.

writing site/pages.json hanzi unicode
02

Build

Racket and Python turn source material into stable static output. Tailwind compiles the shared visual system before publishing.

main.rkt build-site.py tailwind.css assets
03

Output

The public bundle is written to dist/: pages, styles, RSS, sitemap, robots, image assets, and generated data files.

dist sitemap.xml rss.xml pages.json
04

Edge

Cloudflare Worker serves static assets, keeps canonical public paths, and proxies live tool surfaces when static files are not enough.

mayphus-org Workers Assets /typing proxy AI binding
05

Web

The site resolves into simple public paths: tools, studies, articles, profile pages, and operational pages that can keep growing.

/ /hanzi /unicode /infrastructure

registry

Routes are data.

site/pages.json owns public paths, titles, kinds, sitemap inclusion, and static source folders.

pages

Most pages are static.

Static pages stay cheap, fast, and portable. Tool-specific code lives beside the page it powers.

tools

Live tools are exceptions.

Typing stays behind the Worker as a live app because it builds schemas, previews, and downloadable packages.

edge

One public front door.

mayphus.org/* is owned by the Worker, so routes can move internally without changing public URLs.