React Forum
Blog & Guide Responses
Jan 17, 2023 · 04:00 PM

[Deep Dive #41] Glossary Contract Atlas - discussion

Started by Rowan Pierce
blogglossaryterminologyroutingfile routercomponent router

Deep Dive #41 is surprisingly practical: it treats the Glossary as a contract atlas, not a dictionary. Instead of arguing which router is "real", it recommends maintaining shared file-router + component-router terminology and making the terms show up in code review language and rendered evidence so the vocabulary is usable, not trivia.

Read the post

Do you keep a glossary in the repo (and treat it like an API surface), or rely on tribal knowledge? How do you stop 'two router systems' from becoming a permanent source of confusion for new teammates? What glossary terms do you render in the UI as evidence (route id, lane names, posture key) so support/debugging can speak the same language?

Comments (10)

Back to latest
Priya Liao
Jan 17, 2023 · 04:05 PM

We added a short glossary file to our repo and it reduced 'what do you mean by shell' debates instantly.

It's not about being pedantic, it's about preventing silent mismatches.

Dmitri Kline
Jan 17, 2023 · 04:17 PM

The docs glossary is underrated. Linking to it in PRs is an easy way to keep vocabulary aligned without writing essays.

Related: Glossary.

Keira Santos
Jan 17, 2023 · 04:29 PM

Two router systems is fine if you treat it as 'two maps' with explicit signage.

The failure mode is pretending you have one map and then surprising people with exceptions.

Maya Henson
Jan 17, 2023 · 04:41 PM

Rendering glossary evidence sounds silly until you work support. A route id + posture key in the footer can save hours.

If the deep dives are going to name things (vault, lanes, shell), we should make those names visible.

Avery Chen
Jan 17, 2023 · 04:55 PM

The 'contract atlas' framing matches the next post on release notes: words are part of the migration story.

If the language changes, the upgrade path changes.

Noah Vance
Jan 17, 2023 · 05:06 PM

We put a glossary link right in our app shell (dev-only) and it helped onboarding more than any architecture diagram.

Glossary + screenshots = shared reality.

Salma Qureshi
Jan 17, 2023 · 05:18 PM

We literally render a tiny "atlas strip" at the bottom of internal builds:

tsx
return (
  <footer data-shell={shellId} data-route={routeId} data-lane={lane} data-posture={posture}>
    <a href="/docs/glossary">glossary</a>
  </footer>
);

It feels dumb until you realize every bug report now includes the vocabulary keys you need.

Keira Santos
Jan 17, 2023 · 05:31 PM

Counterpoint: glossaries can become bikeshedding magnets.

If people argue for hours about definitions, the atlas becomes politics instead of a tool.

Rowan Pierce
Jan 17, 2023 · 05:36 PM

True, but I think the post's move is to make terms enforceable: a term isn't "real" until it's a rendered marker or a contract key.

That shifts debate from vibes to "what does this term let us debug or migrate".

Keira Santos
Jan 17, 2023 · 05:39 PM

Yeah, if the term has to show up in the UI, it gets a lot harder to bikeshed endlessly.

Mina Calder
Jan 17, 2023 · 05:49 PM

The atlas framing also helps with migrations: you can change implementation while keeping the vocabulary stable.

New hires learn "shell/scope/lane" once, and the codebase can evolve underneath without re-teaching everything.

Benji Rios
Jan 17, 2023 · 06:02 PM

A practical rule: every glossary term should have one "evidence" example.

If you can't show what it looks like rendered (data attrs, ledger field), it probably isn't a useful term yet.