krz/brand-bench

A dynamic brand documentation generator with Ollama integration.

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

4f527d6985dabfa048ee20b996aed68cd9d4f5be

unsigned

author: Christian Cleberg <hello@cleberg.net> · 2026-08-02T20:29:30Z

convert readme to nfo; relicense to 0bsd
 LICENSE    |  33 ++++++---------
 README.md  | 134 -------------------------------------------------------------
 README.nfo |  79 ++++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 155 deletions(-)

diff --git a/LICENSE b/LICENSE
index a11dc63..419813e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,12 @@
-MIT License
-
-Copyright (c) 2026 krazy warez
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+Copyright (C) 2026 krazy warez
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/README.md b/README.md
deleted file mode 100644
index 6312725..0000000
--- a/README.md
+++ /dev/null
@@ -1,134 +0,0 @@
-# Brand Bench
-
-A client-side brand identity generator. Describe a project and get a complete
-brand package — positioning, tone of voice, color palette, typography system,
-logo concepts, taglines, and usage examples — instantly in the browser.
-
-No backend. No accounts. Everything runs locally and persists in `localStorage`.
-
-![Brandbench screenshot](docs/screenshot.png)
-
-## Features
-
-- **Template generation** — instant, offline-capable brand packages tailored by
-  category (developer tool, creative studio, SaaS product, etc.)
-- **AI generation** — connect your local [Ollama](https://ollama.com) instance
-  for LLM-powered output; cancellable mid-stream
-- **Multiple packages** — create, rename, duplicate, and switch between brand
-  packages in tabs; each package is independently persisted
-- **Inline editing** — click any field in the preview to edit it directly
-- **Section locking** — lock sections before regenerating so they stay unchanged
-  across runs
-- **Undo / redo** — full edit history per package (`⌘Z` / `⌘⇧Z`)
-- **Color palette** — editable swatches with a native color picker
-- **Typography system** — curated font pairings per category with an 8-level
-  type scale
-- **Export** — download as Markdown, JSON, or a self-contained HTML guidelines page
-
-## Getting started
-
-```bash
-npm install
-npm run dev
-```
-
-Open `http://localhost:5173`.
-
-To build for production:
-
-```bash
-npm run build      # outputs to dist/
-npm run preview    # serve the build locally
-```
-
-## AI with Ollama
-
-Brandbench can generate brand packages using a locally running Ollama model.
-
-1. [Install Ollama](https://ollama.com/download) and pull a model:
-
-   ```bash
-   ollama pull llama3.2        # recommended default
-   ollama pull mistral         # good alternative
-   ollama pull gemma3          # another option
-   ```
-
-2. Make sure Ollama is running:
-
-   ```bash
-   ollama serve
-   ```
-
-3. If you're running Ollama on a non-default port or a different host, set the
-   `OLLAMA_ORIGINS` environment variable to allow browser requests:
-
-   ```bash
-   OLLAMA_ORIGINS="*" ollama serve
-   ```
-
-4. Open Settings (⚙) in the app, enable AI, set your base URL
-   (`http://localhost:11434` by default), select a model, and click **Test
-   connection**.
-
-Larger models produce better-structured output. If generation fails with a JSON
-error, try a bigger model. Generation typically takes 15–60 seconds depending on
-hardware.
-
-## Self-hosting with Docker
-
-A `Dockerfile` and `compose.yml` are included for deploying the app alongside
-Ollama on a server.
-
-```bash
-docker compose up -d --build
-```
-
-The app is served on port 8000. Ollama's API is proxied through nginx at `/api/`
-so the browser never makes a cross-origin request — no CORS configuration
-needed.
-
-**After first boot, pull at least one model:**
-
-```bash
-docker compose exec ollama ollama pull llama3.2
-```
-
-Then open the app, go to Settings (⚙), enable AI, and set the Ollama base URL
-to `http://your-server:8000` (no path suffix).
-
-**GPU support:** If your server has an NVIDIA GPU, uncomment the `deploy` block
-in `compose.yml` (requires the
-[NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html)).
-
-## Project structure
-
-```
-src/
-  engine/
-    generator.ts       # Template-based brand package generator
-    aiGenerator.ts     # Ollama integration
-  hooks/
-    useWorkspace.ts    # Per-package state, generate, undo/redo
-    usePackages.ts     # Multi-package tabs and localStorage slots
-    useSettings.ts     # Ollama settings persistence
-  components/
-    InputPanel.tsx     # Project details form
-    PreviewPanel.tsx   # Brand package preview with toolbar
-    BrandDoc.tsx       # Full brand document (sections, palette, type scale)
-    PackageSwitcher.tsx  # Tab bar with rename/duplicate/delete
-    SettingsPanel.tsx  # AI settings drawer
-  lib/
-    sanitize.ts        # Defensive coercion for AI output fields
-    export.ts          # Markdown / JSON / HTML export formatters
-  types.ts             # All shared TypeScript interfaces
-```
-
-## Tech stack
-
-- [React 18](https://react.dev) + [TypeScript](https://www.typescriptlang.org)
-- [Vite](https://vitejs.dev)
-- No UI library — plain CSS with custom properties
-
-## License
-
-MIT
diff --git a/README.nfo b/README.nfo
new file mode 100644
index 0000000..ead071d
--- /dev/null
+++ b/README.nfo
@@ -0,0 +1,79 @@
+┌──────────────────────────────────────────────────────────────┐
+│  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                                                      │
+└──────────────────────────────────────────────────────────────┘