Publishing the site

The site is a static folder. There is nothing to run on the server for the pages themselves.

Build the folder

node tools/build-dist.mjs

This writes dist/: the pages, the three pure engine files the lab and the home page re-run in the browser (battery, hooks, config), a sitemap, a robots.txt and the security headers. The address comes from site in site/assets/js/config.js. node tests/dist.mjs serves dist/ the way a plain static host would and checks every page.

site/serve.mjs (what launch.bat runs) does the same on the fly for local use. A static host does not run it, which is why the build copies those engine files next to the pages.

Netlify

Connect the repository. netlify.toml already says: build with node tools/build-dist.mjs, publish dist. Nothing else to set. Cloudflare Pages and GitHub Pages work the same way: build command above, publish directory dist.

The domain

Add the domain in the host's settings, then create at your registrar:

TypeNameValue
CNAMEwwwthe target the host gives you (for Netlify, <your-site>.netlify.app)
A or ALIAS@ (the bare domain)the host's apex address, or a redirect to www

The host issues the HTTPS certificate once the DNS answers. A change at the registrar can take from minutes to a day.

What a static host does not do

An organism writes data/<id>/status.json, feed.json and series.json as it runs, and the pages read them. A static host serves the folder as built, so:

The numbers on the site

The strip under the home hero and the plate on the token page show live numbers read from the chain by each visitor's browser: what sits at the burn address and the share of the supply it is, the market cap and the price (from the curve or the Uniswap v4 pool), the fees the wallet has claimed, and what the wallet holds. They refresh every 30 seconds, need no runner and no server of ours, and work on a static host as soon as ca is set. Add ?ca=0x... to the home or token address to look at any Pons coin the same way. Without a coin, the strip shows the demo organism and says so.

Before the coin exists

Fill in ca and buy in site/assets/js/config.js when the coin launches, rebuild, and the token page shows the address, the explorer link and the trade link. Until then it says the address is to be announced.

What never goes in the folder

The .env (it holds the wallet key and the model key), node_modules, the data of a running organism if it holds anything you do not want public (it is meant to be public). tests/dist.mjs fails if an API key appears anywhere in dist/.