Horizontal koder imago

Koder Imago — products/horizontal/imago/

Role in the stack

Area Sector Consumers
Horizontal Asset Internal: design teams (Hub, Koru, Talk, …). External (Phase 2): designers, devs

Primary couplings

Module Nature
services/foundation/katalog Registry — Imago consumes katalog REST for asset CRUDsearchsigning
products/dev/kicon Validation + variant generation — invoked by Promote to refresh Hub icon variants
products/dev/hub First promotion target — /preview/<slug> iframes the Hub landing with the candidate

Status

*0.2.0 (20260502)*— internal MVP *eployed* Reachable at https://dev.imago.koder.dev and locally on localhost:8090.

Feature Status
Scaffold + cmdimago + htmltemplate + htmx
Importer (batchdir + manifest.toml; legacy -src kept)
Web UI grid + favorites (localStorage)
PreviewonHub iframe (favicon + topbar swap)
PromotetoHub (icon.svg overwrite + kicon generate) ✅ local only
Bank UX: reject modal, /bank, filters, keptforinspiration
Bulkreject nonfavorites ("shortlist favorites")
Sourceoftruth blobs in meta/brand/icons/candidates/<batch>/
Persistence — SQLite (#015) + PATCH metadata (#016)
Deployed to s.forge as dev.imago.koder.dev
Auth (Koder ID via Auth Gate) ⏳ vhost env=dev, gate wiring pending
Static publish ("11 cópias da landing per icon") ⏳ #013
Royalty/payouts ❌ Phase 2
Public RFC + Brand Score validation ❌ Phase 2

Quick start

Production (s.forge)

Just open it:

  • *https:/ev.imago.koder.dev>*— picker UI
  • *https:/ev.imago.koder.dev/bank>*— bank
  • *https:/ev.imago.koder.devpreviewslug>*— Hub landing with the candidate icon swapped in

systemd units on s.forge: koder-imago-katalog.service (port 7791) and koder-imago.service (port 7790). Promote endpoint disabled in production (IMAGO_DISABLE_PROMOTE=1).

Local dev

# Terminal 1 — registry
cd services/foundation/katalog
GOWORK=off go build -o /tmp/katalog ./cmd/katalog
KATALOG_SQLITE_PATH=/tmp/imago.db /tmp/katalog &

# Terminal 2 — Imago
cd products/horizontal/imago
GOWORK=off go build -o /tmp/imago ./cmd/imago
GOWORK=off go build -o /tmp/imago-import ./cmd/imago-import

# Import a batch
/tmp/imago-import --batch-dir ../../../meta/brand/icons/candidates/hub-3d-dark-2026-05-01

# Run the picker
/tmp/imago \
  --store $PWD/data/assets \
  --hub-landing $PWD/../../dev/hub/landing \
  --web-kit $PWD/../../../engines/sdk/koder_web_kit &

xdg-open http://localhost:8090/

Architecture (MVP)

        ┌──────────────────────────┐
        │  hub-candidates-3d.svg   │
        └────────────┬─────────────┘
                     │ imago-import
                     ▼
        ┌──────────────────────────┐
        │ katalog :8080            │
        └────────────┬─────────────┘
                     │ REST
        ┌────────────▼─────────────┐
        │ imago :8090              │ ← html/template + htmx
        └────────────┬─────────────┘
                     │ promote-to-hub
                     ▼
        ┌──────────────────────────┐
        │ products/dev/hub/        │
        │   icon.svg + variants    │ ← kicon generate
        └──────────────────────────┘

References

  • Master ticket: projects/koder-stack#091
  • Product README: products/horizontal/imago/README.kmd
  • Engine: services/foundation/katalog
  • Driver: 20 candidates generated 20260501 for the Hub icon redesign

Source: ../home/koder/dev/koder/meta/docs/stack/modules/horizontal-koder-imago.md