← 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.