Persona-driven design generation

Cut to fit one person.

Generic interfaces fit everyone, so they fit no one. Baste takes a persona's films, music, rooms and obsessions, and from them drafts the design system, icons, images and motion that fit.

Open the Studio
cyberbotanist.app / collectionsLibraryCollectionsNotes
Pacific Northwest

Mycelial network topology

A biologist who studies fungi networks by day, programs LED grow systems by night. They believe technology should feel organic and alive.

Start a collectionBrowse
Pinned spaces
  • Greenhouses10
  • Herbariums50
  • Maker spaces with plants43
Now playing
Biosphere
Ambient
MushishiErnst Haeckelbioluminescentmycelial
display face
Fraunces
primary
#A15D3F
ground
#FDF1EB
radius
0.75rem · organic
density
rich
motion
300ms · smooth

Same screen, same code. Every colour, typeface, radius, spacing step and easing curve above was generated by Baste from the persona alone.

01 — Measure

A persona is not a demographic.

“Users aged 25–34” has no taste. A person does. They own a stack of films, a playlist, a room they feel at home in, and a list of things they can't stand in software. Baste takes all of that as measurements.

  • Influencesfilms, anime, music, games, artists, fashion
  • Habitatthe spaces, tools and platforms they live in
  • Behaviourhow they discover, what they value, what annoys them
Measurement sheet · No. 001

The Cyberbotanist

Pacific Northwest
solarpunk · biohacking
Films & anime
Annihilation, Nausicaä of the Valley of the Wind, The Fountain, Mushishi
Music
ambient, folktronica, Biosphere, Christina Vantzou
Spaces
greenhouses, herbariums, maker spaces with plants
Tools
Raspberry Pi, Arduino, Notion, Are.na
Obsessions
mycelial network topology, bioluminescent organisms
Can't stand
aggressive notifications, dark patterns, infinite scroll
The cut — aesthetic profile
Colour temperature
Density
Edges
Motion
Typography
Texture
Iconography
Layout
02 — Method

Baste first. Cut later.

Tailors tack a garment together loosely, try it on, and only then sew it for good. Baste does the same with design: it explores many loose options, fits them to the persona, and only then produces the finished assets.

  1. 01

    Measure

    Load or write a persona: influences, habitat, behaviour. Baste infers the aesthetic profile, or you set it by hand.

  2. 02

    Draft

    Each asset type gets its own prompt. An icon is described differently from a hero image or an ambient loop.

  3. 03

    Baste

    Quality-diversity evolution, 5–10 generations. Candidates spread across temperature, density and abstractness; every niche keeps its best.

  4. 04

    Fit

    An LLM judge scores each candidate against the persona, weighted toward whether it feels made for them.

  5. 05

    Cut

    A diverse final set becomes production assets — SVG, images, video loops — packaged with tokens and a suite manifest.

Step 03 · the archive

Many fittings, not one answer.

generation 8/830/35 niches · 5 kept
sparse → densecoolcolour temperaturewarm
Shape encodes the third axis: square tiles are literal, round ones abstract. Stitched tiles are the final archive — the best in each region, chosen for spread.
Step 04 · the judge

Scored for fit before finish.

  • Persona alignmentDoes this feel made for them?30%
  • Visual qualityIs it well executed?20%
  • UniquenessCould a stock generator have made it?20%
  • CoherenceDoes it belong with the rest of the suite?15%
  • UsabilityDoes it survive a real interface?15%
04 — Off the table

Finished pieces, ready to wear.

Generation ends in files you can ship: assets in assets/output/{svg,images,videos}, tokens for whichever stack you use, and a manifest that says why each piece exists.

  • QuiverAIsvg/Icons & illustrationsVector icons, spot illustrations and component art, drawn in the persona's icon style.
  • GPT Image 2images/Images & texturesHero images, backgrounds and surface textures from persona-specific prompts.
  • Veo 3videos/Ambient loopsShort motion loops and transitions timed to the persona's motion profile.
  • BastetokensDesign tokensColour, type, spacing, radii, shadows and easing as CSS, Tailwind, Panda or JSON.
  • OpenPencil.opEditable documentTokens and components as a design file you can keep editing, watched for changes.
  • Baste-suite.jsonSuite manifestEvery asset with its purpose, scores, cultural references and relationships.
:root {
  /* The Night Market Coder - Generated Design System */
  
  /* Colors */
  --color-primary: #e44635;
  --color-secondary: #ebb230;
  --color-accent: #fe12a9;
  --color-background: #150d0c;
  --color-surface: #211816;
  --color-text: #f5ecea;
  --color-text-muted: #b1a09d;
  --color-border: #3a302e;
  --color-warm: #eb6200;
  --color-cool: #18b1cd;

  /* Typography */
  --font-heading: 'Dela Gothic One', sans-serif;
  --font-body: 'Instrument Sans', sans-serif;
  --font-mono: 'Fira Code', monospace;

  /* Spacing Scale */
  --space-0: 0;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4rem;
  --space-7: 6rem;
  --space-8: 8rem;

  /* Border Radius */
  --radius-none: 0;
  --radius-sm: 0.125rem;
  --radius-base: 0.25rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-full: 9999px;

  /* Motion */
  --duration-fast: 100ms;
  --duration-base: 200ms;
  --duration-slow: 400ms;
  --duration-slower: 800ms;
  --ease-default: cubic-bezier(0.25, 0.1, 0.25, 1);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-snappy: cubic-bezier(0.25, 0.1, 0, 1);
}

$ baste tokens nightmarketcoder --format css

05 — Thread the needle

Start with the source. Fit offline before calling a model.

Generation supports --dry-run to draft prompts without calling a provider. The public Studio is a browser demo; use a local checkout for saved work and configured providers.

Personas

baste list
Every persona, base and custom
baste show cyberbotanist
Full measurements and aesthetic
baste create mine --base cyberbotanist
Extend a base persona
baste decompose https://site.example --deep
Draft a persona from a live site
baste remix cyberbotanist liminalweeb --as moss-vhs
Cross two personas

Make

baste generate nightmarketcoder
Asset suite: icon, hero, background
baste ui-kit liminalweeb
The full UI kit
baste tokens cyberbotanist --format css
Tokens as css · tailwind · json
baste gui
The Studio, wired to your machine
baste mcp
Expose Baste to your agent over MCP

Version

baste init cyberbotanist
Start design history
baste update cyberbotanist colors.primary "#a15d3f"
A semantic, recorded change
baste branch cyberbotanist night-shift
Explore an alternate fitting
baste history cyberbotanist
Every decision, with its reasons

Design for the person, not the persona document.

Start a fitting Runs in demo mode, or wired to baste gui.