README.org
87 lines · 2031 bytes
1#+title: brand bench
2
3* what
4client-side brand identity generator. describe a project, get a
5brand package: positioning, tone, color palette, typography, logo
6concepts, taglines, usage examples. runs in the browser.
7
8no backend. no accounts. state persists in localStorage.
9
10* does
11- template generation, offline, tailored by category
12- ai generation via a local ollama instance, cancellable mid-stream
13- multiple packages in tabs, each persisted separately
14- inline editing, click any field in the preview
15- section locking across regenerations
16- undo/redo per package (⌘Z / ⌘⇧Z)
17- editable color swatches, native color picker
18- font pairings per category, 8-level type scale
19- export to markdown, json, or a self-contained html page
20
21* run
22#+begin_src sh
23npm install
24npm run dev
25#+end_src
26
27open http://localhost:5173.
28
29- build:
30
31#+begin_src sh
32npm run build # dist/
33npm run preview
34#+end_src
35
36* ai with ollama
371. install ollama, pull a model:
38
39#+begin_src sh
40ollama pull llama3.2
41ollama pull mistral
42ollama pull gemma3
43#+end_src
44
452. run it:
46
47#+begin_src sh
48ollama serve
49#+end_src
50
513. a non-default host or port needs OLLAMA_ORIGINS set for browser
52 requests:
53
54#+begin_src conf
55OLLAMA_ORIGINS="*" ollama serve
56#+end_src
57
584. in the app: Settings, enable AI, set base url
59 (http://localhost:11434), pick a model, Test connection.
60
61bigger models give better-structured output. generation takes
6215-60s depending on hardware.
63
64* docker
65Dockerfile and compose.yml deploy the app next to ollama.
66
67#+begin_src sh
68docker compose up -d --build
69#+end_src
70
71app serves on port 8000. ollama's api is proxied through nginx at
72/api/, so the browser makes no cross-origin request. after first
73boot, pull a model:
74
75#+begin_src sh
76docker compose exec ollama ollama pull llama3.2
77#+end_src
78
79set the ollama base url to http://your-server:8000. for an nvidia
80gpu, uncomment the deploy block in compose.yml (needs the nvidia
81container toolkit).
82
83* stack
84react 18, typescript, vite. no ui library, plain css.
85
86* license
870bsd. see LICENSE.