← back to Logo Variants App
README.md
64 lines
# Logo Showdown — desktop wrapper
A focused macOS window for picking the final brand mark out of the variants
generated by `~/Projects/thesetdecorator/`. Loads
`http://127.0.0.1:9716/logo-variants.html` in a borderless Electron window
(hiddenInset titlebar, vibrancy background, 1440×900 default).
## Why this exists
When picking between dozens of generated logo variants you don't want browser
chrome (tabs, URL bar, bookmarks) competing with the marks themselves. A
borderless app window puts the variants front-and-center, and you can keep it
pinned to a Space without losing it to a Cmd-Tab through Chrome.
## Run (Tauri — primary)
```bash
cd ~/Projects/logo-variants-app
npm install
npm start # → cargo tauri dev — hot-reload window
```
Requires Rust + cargo-tauri. Install once: `brew install rust && cargo install
tauri-cli --version "^2.0" --locked`.
## Build the `.app`
```bash
npm run pack # → src-tauri/target/aarch64-apple-darwin/release/bundle/macos/Logo Showdown.app
npm run ship # build + copy to ~/Desktop/Logo Showdown.app
```
Bundle size: **3.8 MB** (vs 698 MB for the legacy Electron build below).
## Stack history
- **v0.1.0 (Tauri, current)** — Rust + macOS WKWebView. 3.8 MB.
- v0.1.0-electron (kept for fallback) — Electron + bundled Chromium, 698 MB.
Legacy scripts under `_electron-*-legacy` in package.json. The Electron
files (`main.js`, electron deps) remain in the repo as a safety net in
case Tauri's WKWebView ever proves too different from Chrome for the TSD
Logo Showdown page.
## What it talks to
`http://127.0.0.1:9716/logo-variants.html` — served by the `thesetdecorator`
project (Express server, pm2 process `thesetdecorator`). If that server is
down, the app shows a friendly "start the TSD server" panel with a Retry
button rather than a blank screen.
External links (anything off `127.0.0.1:9716`) open in the default browser,
not in this window.
## Hard-coded host
The target URL is fixed at `http://127.0.0.1:9716/logo-variants.html`. Override
on launch with the `LOGO_SHOWDOWN_URL` env var if needed.
## Future
If we end up reusing this pattern (focused wrapper around an internal
viewer) we should turn `main.js` into a generic `~/Projects/_shared/internal-
viewer-shell/` and parameterize the target URL + title + icon.