Skip to content

feat(seo): position the landing on what people search for - #49

Open
JheisonMB wants to merge 4 commits into
developfrom
feature/seo-positioning
Open

feat(seo): position the landing on what people search for#49
JheisonMB wants to merge 4 commits into
developfrom
feature/seo-positioning

Conversation

@JheisonMB

Copy link
Copy Markdown
Contributor

The landing was positioned on brand words nobody searches, and what each
experiment is had drifted into four copies that disagreed. This fixes the
mechanism first and the words second.

What each page presents socially

All eight experiment pages shared one Open Graph image — the UniverLab logo and
SCI · CLI · BIO. Sharing the texforge link produced a card that named neither
texforge nor what it does.

scripts/og/build-og.mjs already existed and already used the right technique
(text outlined to paths with opentype.js, brand tokens, rasterised through
headless Chrome because social scrapers do not render SVG). It is now
parameterised per experiment, in the shape of the sibling generator in
UniverLab/.github, reading name, tagline and accent from
src/lib/experiments.ts and src/i18n/ rather than holding a second copy of
them. Each card carries the product as subject and the wordmark as endorsement.

One owner for the positioning line

texforge said one thing in its title, another in its meta description, a third
in its GitHub repository description and a fourth in the og image. Nobody wrote
four versions on purpose — each surface was edited on its own day.

The repository is now the owner and GitHub is a mirror: a check reports drift
between the English tagline and the repository description, and a separate
explicit command applies it. The build never writes to GitHub, and with no token
the check reports skipped rather than passed, so it cannot break a
contributor's build.

Titles that state the problem

Every page used {Name} — UniverLab: two brand names in the most valuable slot
on the page. Titles now lead with the problem and close with the brand, and
descriptions carry the substance in searchable terms. The Spanish is translated
by intent rather than by words, and technical terms stay in English because that
is how they are searched and spoken.

The hero taglines are unchanged — the poetic line stays where a human who
already arrived reads it, and the title carries the query. SCI · CLI · BIO
also stays exactly where it was, as a brand mark rather than as a description.

Two things worth calling out:

  • gitkit's title deliberately breaks the pattern. It is a statement, not a
    query, because the angle there is that git hooks are underused.
  • The home title was hardcoded in English on the Spanish page too. It is now
    localised, and it says what the lab makes instead of naming a category that
    has no search volume — so title and description finally agree.

Verified against the built HTML rather than the diff: 84 pages, 144 tests,
check:i18n green, hreflang intact.

@JheisonMB JheisonMB added the target:develop Targets the develop branch label Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

target:develop Targets the develop branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant