DATUM
Labstatic first

Spectacular, and still green on mobile.

FrameworkAstro, static output. Interactive parts are small scripts, so pages ship almost no JavaScript by default.
HostingVercel, static files on the edge, immutable caching for hashed assets.
ContentContent collections, in MDX. Each project file holds its coordinates, which seed its patterns.
Patternspatterns-toolkit, seeded generators rendered to inline SVG at build time. Only the card reveal, Enquire and the seed demo below run pattern code in the browser.
ImageryAI-generated renders, served as AVIF and WebP, each resting on a build-time dithered placeholder.
MotionGSAP + ScrollTrigger, for the hero lift only; the section draw is a few lines of plain scroll code. Every effect has a reduced-motion version.
TransitionsNative view transitions, between pages; site signatures morph by name.
3DThree.js, on the home hero only, loaded after first paint, over an SVG poster.
FontsThree variable families, self-hosted and cut to the characters and weights the site uses: 113 KB for all four files.
<1.5sLCP on 4G mobilenow 2.50 s · not yet
0.00Layout shiftnow 0.000
<100msBlocking timenow 45 ms
<40KBJS per project page, gzippednow 2.9 KB
95+Lighthouse, all four scoresnow 97

"Now" is the worst page in the latest Lighthouse run, below.

Live numbers5 pages

Measured on every merge.

PagePerf.A11yBest pr.SEOLCPCLSTBT
/971001001002.43 s0.0000 ms
/work/971001001002.50 s0.0000 ms
/work/kalsoy-cliff-house/981001001002.27 s0.0000 ms
/studio/981001001002.34 s0.0000 ms
/enquire/991001001001.96 s0.00045 ms

Lighthouse CI · commit f0351ac · 31 Oct 2026. Mobile, simulated slow 4G, median of 3 runs. After every merge the CI workflow writes these numbers into the repo, and they go live with the next deploy. The simulation is stricter than a real phone on the live site.

Seed demosame ground, every time

Two numbers in, a whole site out.

Every pattern here grows from a latitude and longitude. Change them by a ten-thousandth of a degree, about 11 m on the ground, and you get a different seed, a different ground and a different screen.

50.1029° N 5.5428° W · seed 2953823061
4 × 5 m panel · 33% open
Scale
2.30
Octaves
4
Ridges
yes
Tilt
-0.02, 0.03

The first ground is Newlyn, Cornwall: the tide gauge every British height is measured from.

Pattern toolkit3 patterns

Drawn with patterns-toolkit.

The contours, dither and hairlines on this site come from patterns-toolkit, Mark Thurman's generative pattern library. Every pattern is seeded only from a site's coordinates, so the same ground draws the same way every time.

Contoursa seeded noise field traced by marching squares: every site signature, the hero and the share images
Dither1-bit ordered dither: the image placeholders and the page-transition dissolve
Hairlines and graincrop marks, dimension lines, scale bar, north point and the paper grain
Cellsthe building-skin screens are new for Datum, grown from the same seeds.