diff options
| -rw-r--r-- | LICENSE | 33 | ||||
| -rw-r--r-- | README.md | 134 | ||||
| -rw-r--r-- | README.nfo | 79 |
3 files changed, 91 insertions, 155 deletions
@@ -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`. - - - -## 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 │ +└──────────────────────────────────────────────────────────────┘ |
