Colophon
One mark, three modules. The A and the V are the same chevron at two rotations, and that edge is the only transition on the site: the opening wipe, the way every plate arrives, the cut between pages.
Take the mark apartFive measurements, on rails, rebuilding the drawing as they move
The motion is CSS. One client island reads scroll and pointer and writes custom properties; the stylesheet does the animating, on the compositor. There is no motion library and no smooth-scroll library. The page scrolls the way the device scrolls.
What plays inside the letterforms is a single fragment shader: contour lines over drifting noise, lit from the same point as the CSS light that follows the pointer. When there is footage, the footage plays instead and the shader never loads.
The type is Archivo at its widest optical width for anything that is voice, and JetBrains Mono for anything that is data: years, coordinates, status. In display sizes the A and the V are the mark's own glyphs, not the font's.
The twelve-column grid the mark was drawn on is left visible. Everything on the page sits on it.
Content lives in SQLite behind a small admin panel and the pages render per request, so the site is always what the panel says it is. Uploaded files are served from a separate origin under a sandboxing policy. The whole thing is one container, deployed with Coolify, built in Belgium.
Privacy
Visits are counted by Umami, served from analytics.brandforge.be: page views and the country and browser they came from, with no cookie and no identifier that follows you to a second visit. No tracking pixels, and no other third-party script. The fonts are bundled with the site, so a visit makes no request to anyone else but the counter. The only cookie is the admin session, set on login and never for a visitor. The browser keeps one flag for itself, in session storage, so the opening plays once per visit rather than on every page.
The live signals, whether the channel is streaming, when the last commit was pushed, and a project's own numbers on its case page, are asked for by the server, not by your browser, and the answers are cached. Failed admin logins record an address for a short while so the door can lock. The contact form keeps what you type into it — your name, your address and the message — until it has been answered and deleted, and nothing about the machine it came from; the same address is counted in memory for an hour so the form cannot be flooded, and that count is never written down. The line in the hero that says who else is here is the number of pages open on the server at that moment, held in memory only while each is open, and nothing about any of them.