B R A N D   B E N C H                     [ KRZ ]   krz.sh

WHAT
client-side brand identity generator. describe a project, get a
brand package: positioning, tone, color palette, typography, logo
concepts, taglines, usage examples. runs in the browser.

no backend. no accounts. state persists in localStorage.

DOES
- template generation, offline, tailored by category
- ai generation via a local ollama instance, cancellable mid-stream
- multiple packages in tabs, each persisted separately
- inline editing, click any field in the preview
- section locking across regenerations
- undo/redo per package (⌘Z / ⌘⇧Z)
- editable color swatches, native color picker
- font pairings per category, 8-level type scale
- export to markdown, json, or a self-contained html page

RUN
npm install
npm run dev

open http://localhost:5173.

build:

npm run build      # dist/
npm run preview

AI WITH OLLAMA
1. install ollama, pull a model:

ollama pull llama3.2
ollama pull mistral
ollama pull gemma3

2. run it:

ollama serve

3. a non-default host or port needs OLLAMA_ORIGINS set for browser
requests:

OLLAMA_ORIGINS="*" ollama serve

4. in the app: Settings, enable AI, set base url
(http://localhost:11434), pick a model, Test connection.

bigger models give better-structured output. generation takes
15-60s depending on hardware.

DOCKER
Dockerfile and compose.yml deploy the app next to ollama.

docker compose up -d --build

app serves on port 8000. ollama's api is proxied through nginx at
/api/, so the browser makes no cross-origin request. after first
boot, pull a model:

docker compose exec ollama ollama pull llama3.2

set the ollama base url to http://your-server:8000. for an nvidia
gpu, uncomment the deploy block in compose.yml (needs the nvidia
container toolkit).

STACK
react 18, typescript, vite. no ui library, plain css.

LICENSE
0bsd. see LICENSE.

krz.sh