The brand kit a machine can actually use
A companion to "What a brand kit actually is", going one level deeper into the spec. Why structure, not content, is what makes a brand kit binding.
We've made the case before that a useful brand kit is something a machine can read, not a Notion doc full of vibes. This is the level below that argument, the part where it stops being a philosophy and becomes a data structure. Because the reason a structured kit produces on-brand output and a written one doesn't isn't really about brand at all. It's about what a model can and can't obey.
Models obey structure, not prose
Give a generation pipeline a paragraph that says "warm but professional, modern but not cold," and you've given it a mood, not a constraint. The model will interpolate, and interpolation is exactly where drift lives. Give the same pipeline a field that says `primary: #D8421F` and a rule that says this color is the brand and that one is a supporting tint, and there's nothing to interpolate. The decision is already made.
This is the whole game. Prose invites interpretation; structure forecloses it. A brand kit works in proportion to how much of it is structured rather than described.
A written brand kit is a reference. A structured one is a spec. Only the spec is binding.
The spec, field by field
Here's what "structured" means concretely, the shape flypost.ai extracts and then binds every generation to.
Palette: five colors, each with a role
Not a swatch list, a typed object. `primary`, `accent`, `background`, `secondary`, `highlight`, each a hex plus a role plus a relative importance. The role is load-bearing: it's what lets a slide know which color is the brand and which is scaffolding, so your accent never accidentally becomes a headline.
Typography: fonts with weight ranges
Heading font and body font, each with weight ranges, pulled from your site's CSS rather than guessed. "Use Inter" is a hint; "headings in Inter 600–700, body in Inter 400" is a spec the renderer can actually execute. We pin your real typeface in every carousel instead of a generic look-alike.
Voice: descriptor, vocabulary, and a banned list
Three parts, and the third is the one most tools skip. A tone descriptor, three to five vocabulary characteristics, and a list of words the brand must never use. The banned list is pure structure doing work prose can't: a written brief might ask a model to avoid "leverage" and "unlock"; a banned-words field makes those tokens unavailable. One is a hope, the other is a constraint.
Audience: a separate field from identity
Who you post to, stored apart from who you are. Keeping these as distinct fields is what lets the same brand address founders and enterprise buyers in appropriately different framings without becoming two different brands.
Pillars and visual personality
Four to six content pillars as an explicit list, and a single visual mode, editorial, photographic, illustration, or infographic, that constrains image generation so it can't wander into generic stock-photo territory.
Why "extract" beats "generate"
The objection writes itself: most founders don't have this structure lying around. Correct. But the move that makes it tractable is realizing you shouldn't author the spec, you should extract it, because almost all of it already exists on your website.
The colors are in your CSS. The fonts are in your CSS. The tagline is your H1. The voice is sitting in your about page, written by whoever knows the brand best. A brand kit isn't something a designer invents; it's something a designer captured, and most of that capture already happened when your site was built. The pipeline's job is extraction, not invention: read the homepage and key pages in about 15 seconds, merge and rank the colors from both CSS and perceptual extraction, filter the real logo from partner-logo noise, infer the voice, and confirm framing with four single-tap questions. A minute later you have the row.
That last point matters for trust: because it's extraction, every field is yours and every field is editable. The kit is a starting structure pulled from your own site, not a personality a model assigned you.
What the structure buys you
Once the kit is a row instead of a paragraph, every downstream generation is bounded. Carousels look right because the palette is locked and the type is pinned. Captions sound right because the voice descriptor and banned list are enforced rather than suggested. Hashtags fit because the pillars are explicit. You don't get drift, because drift needs room to happen, and a fully-specified structure doesn't leave any.
That's the quiet reason structure beats content here. It's not that a written brand kit contains worse information, often it contains richer information. It's that a model can't reliably obey a paragraph, and it can't disobey a field. The brand kit is the moat precisely because it's the part you make binding. The model is the commodity; the structure is yours.
Keep reading