sum Notify me fr

The Sum formula

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.

Reading a formula in thirty seconds

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.

  1. 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.

  2. contact = index - tarifs + rendezvous

    The contact page is the index without the prices, plus an appointment form. If the index changes, contact follows.

  3. promo = index ~ enseigne{titre: "-20 % cette semaine"}

    The promo page keeps everything but changes the sign's title. Just for this page.

Pages and zones

One file, site.map, one page per line.

nom = …
Defines a page. The name gives the address: contact becomes /contact.contact = index - tarifs
a | b | c
Separates the page's zones, in @zones order.entete | enseigne | pied
a, b
Separates blocks within a zone, top to bottom.enseigne, services, tarifs
@zones …
The zones of every page, declared once for the whole site.@zones header | main | footer
# …
A comment, to the end of the line. For humans (AIs read them too).# l'accueil d'abord

Start from a page and change the rest

Operations apply left to right, each preceded by a space. A marker is a block type (tarifs) or a name (#avis).

+ bloc
Adds a block at the end of the main zone.index + avis
+ bloc^
Adds a block at the beginning.index + bandeau^
+ bloc @zone
Adds a block to another zone.index + bandeau @header
+ bloc @after:repère
Inserts right after a block. @before: for before.index + carte @after:services
- repère
Removes a block. If it no longer exists, Sum says so: the parent page changed.index - tarifs
~ repère>bloc
Replaces a block with another, in the same spot.index ~ enseigne>enseigneNoel
~ repère{champ: "…"}
Edits a block in place, for this page only.index ~ enseigne{titre: "Fermé lundi"}
zone=(a, b)
Replaces a whole zone.index main=(faq, contact)

Naming and picking

The dot always means “taken from”. Braces change a field. The rest follows.

bloc#nom
A block with its own content and a marker in the page. Two blocks of the same type? Two names.cartes#equipe, cartes#avis
{champ: "…"}
Changes a field. Dotted paths allowed, text in double quotes.enseigne{bouton.texte: "Appelle-nous"}
kit.bloc
This block, taken from this kit.garage.enseigne
nom/:slug
One page per item of a collection: a service, an article, a vehicle.services/:slug = index ~ enseigne>fiche[@]
[@]
The collection's current item, on its own page.fiche[@]

Formulas for real

Taken from Sum's demo site. Each reads left to right.

  1. 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.

  2. 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.

  3. 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.

Questions

Do I need to learn this?

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.

Why a formula instead of code?

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.

What if we get it wrong?

Sum checks every formula. A missing block, an ambiguous marker, a page that quotes itself: the error gives the line, and often the fix.

Who created the Sum formula?

Mik Aubut, in Terrebonne, Québec. This page is its public reference: version 1.0, October 30, 2026.

Opening soon. For real.

Leave your email: we'll write once, at launch. No newsletter in disguise. The first three pilot businesses go online for free.