krz/brand-bench

clone: git clone https://gitbay.org/krz/brand-bench.git

main:

100644 .gitignore87
100644 Dockerfile644
100644 LICENSE639
100644 README.nfo2873
100644 compose.yml1018
040000 docker/
040000 docs/
100644 index.html302
100644 package-lock.json58557
100644 package.json453
040000 src/
100644 tsconfig.json509
100644 vite.config.ts136
┌──────────────────────────────────────────────────────────────┐
│  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                                                      │
└──────────────────────────────────────────────────────────────┘