A web page in one line. Simple enough for your AI to write without mistakes, precise enough for a developer to know exactly what to do. Here's the whole syntax, no fine print.
A page is made of zones (header, content, footer), and each zone is a list of blocks. A page can start from another one and only say what changes.
index = entete | enseigne, tarifs | pied
The index page: the header, then the sign and the prices, then the footer. Bars separate zones, commas separate blocks.
contact = index - tarifs + rendezvous
The contact page is the index without the prices, plus an appointment form. If the index changes, contact follows.
promo = index ~ enseigne{titre: "-20 % cette semaine"}
The promo page keeps everything but changes the sign's title. Just for this page.
One file, site.map, one page per line.
nom = …contact = index - tarifsa | b | centete | enseigne | pieda, benseigne, services, tarifs@zones …@zones header | main | footer# …# l'accueil d'abordOperations apply left to right, each preceded by a space. A marker is a block type (tarifs) or a name (#avis).
+ blocindex + avis+ bloc^index + bandeau^+ bloc @zoneindex + bandeau @header+ bloc @after:repèreindex + carte @after:services- repèreindex - tarifs~ repère>blocindex ~ enseigne>enseigneNoel~ repère{champ: "…"}index ~ enseigne{titre: "Fermé lundi"}zone=(a, b)index main=(faq, contact)The dot always means “taken from”. Braces change a field. The rest follows.
bloc#nomcartes#equipe, cartes#avis{champ: "…"}enseigne{bouton.texte: "Appelle-nous"}kit.blocgarage.enseignenom/:slugservices/:slug = index ~ enseigne>fiche[@][@]fiche[@]Taken from Sum's demo site. Each reads left to right.
merci = contact ~ form>message#merci ~ meta{title: "Message reçu", noindex: true}
After sending: the contact page, with a message instead of the form, hidden from search engines.
noel = promo ~ hero>heroNeige + sapin$ ~ meta{title: "Horaire des Fêtes"}
The promo, holiday edition: another banner, a tree at the end, another title. Yes, there's a tree block.
services/:slug = home ~ hero>fiche[@] - features - #temoignages + form ~ meta[@]
One page per service: the service sheet instead of the banner, without highlights or testimonials, plus a form. The title comes from the service.
No. Your AI writes the formulas, and the editor rewrites them when you move a block. This page is for the curious and for developers who take over.
Because a formula can't break a layout. It says which blocks go where; the blocks themselves are already proven. Short to write for an AI, easy to read for a human.
Sum checks every formula. A missing block, an ambiguous marker, a page that quotes itself: the error gives the line, and often the fix.
Mik Aubut, in Terrebonne, Québec. This page is its public reference: version 1.0, October 30, 2026.
Leave your email: we'll write once, at launch. No newsletter in disguise. The first three pilot businesses go online for free.