System documentation

System documentation

Client TextPlus
Role Product Designer
Year 2026
Status Live

01 Why a site and not a file

A design system is two things: the pieces and the rules. The pieces live well in Figma. The rules do not, because a rule is conditional prose: “one primary action per screen, except in a dialog, where the destructive one goes on the right”. On a canvas that is a text box. You cannot search it, you cannot link it from a ticket, there is no history when it changes, and when an AI agent reads it, it gets a node tree, not the rule.

So the rules live in markdown, in a repository. A person reads them with a search box, the AI reads them as they are, and every change is recorded with its reason. The site is the public view of those files, at textplus-design-system.vercel.app.

I designed and built the site end to end, alongside the system it documents: information architecture, content, tone, mobile behaviour and publishing, with an AI agent as a pair for the mechanical work. In a team of three, documentation is what lets the developer, or whoever joins next, decide without asking me.

The home page: the system in order, from who the brand is to the pieces that ship.

02 The architecture

Six sections: Getting started, Foundations, Brand, Guidelines, Components and Tokens. Almost every public system has the first five. The deliberate difference is Guidelines: the rules between components, written down.

Most systems leave those rules implicit and trust the judgement of whoever is designing. Here the consumers are a three-person team and an AI agent, and neither can infer. So Guidelines says when a secondary button is used instead of a primary one, what happens with two buttons together, when tertiary text shows up, and why yellow acts and green confirms. Every rule carries its rationale next to it, so a newcomer understands the decision rather than just obeying it. And every component page follows the same skeleton, so the developer knows where to look without learning each page.

Guidelines: action hierarchy explained the way you would explain it to someone new on the team.

03 Design decisions

Colour explained through its three consequences: uniform lightness, predictable contrast, modes without re-picking.
Every component follows the same skeleton: when to use it, anatomy, variants, rules and the tokens it consumes.

04 Result

Twenty-six pages in Astro Starlight with search, three modes with a toggle and the system’s real typography, live on Vercel with automatic deploys on every change: updating a rule and publishing it is the same gesture. Built with an AI agent as a pair: the AI does the mechanical part, from the structure to the generated colour bands, and I decide the content, the tone and what gets published. Tokens and icons come from the same files the app consumes, so design and documentation cannot drift apart.

The icon gallery, public without exposing the licensed files.
At 360 px wide: the app's floor is also its documentation's.

05 Learning

Documentation has to live where people and machines read it at the same time. If only people read it, it ages in a file. If only a machine reads it, nobody argues with it. A repository with markdown and tokens in JSON, and a site on top, solves both with the same file. And writing the reason next to each rule took longer than writing the rule, but it is what lets the system outlive whoever built it.


Documenting is not explaining what was done. It is deciding what can be done without asking.

26 pages foundations, brand, guidelines, components and tokens
3 modes with a toggle Light, Carbon and Navy from the real tokens
360 pixels minimum width the same device floor as the app
1 token source single source of truth: the same values Flutter consumes

Do you have a product that needs to scale with purpose?

Let's talk. hola@franmarrero.com