Taste Machine
AI has no context of our visual taste.
Core trick
Saved images and preferences are distilled into a portable taste-spec file that coding agents load as context on each project.
Description
AI has no context of our visual taste. Every output is bland. As designers, we want the AI to remember our taste. So we built a machine to distill visual preferences into one reusable context skill that any AI tool can ingest. It’s called the Taste Machine. You first train the taste like personalization on Midjourney or import from your existing places you’ve saved inspiration. You then preview your taste into different examples, and then link your taste to your LLM. We’ve built a Chrome extension that then makes it very easy to then continue refining your taste whenever you love something, and your LLM will use the latest version of your taste. Explore other people’s tastes and become a tastemaker.
README excerpt
# Taste Machine Capture your visual/web-design taste — **including what you reject** — into a living, portable taste-spec that your AI coding agent (Claude Code / Cursor / Codex) pulls fresh on every project, and that keeps upgrading itself as you flag things you like in the wild. See [`docs/PRD.md`](docs/PRD.md) and [`docs/DESIGN.md`](docs/DESIGN.md) for the product and engineering specs, and [`APPROACHES.md`](APPROACHES.md) for the taste-engine core bet. ## Quick start ```bash pnpm install pnpm --filter @taste-machine/web dev # http://localhost:3000 ``` No `.env` is required for local dev (defaults: `TASTE_ENGINE=mock`, `DB=memory`). Copy [`.env.example`](.env.example) → `.env.local` to wire the real engine / Supabase later. ```bash pnpm -r typecheck # typecheck every package + the app ``` ## The three lanes (why the seams matter) This repo is structured so three workstreams develop in parallel **without colliding**: | Lane | Owns | Lives in | |---|---|---| | **Taste engine** (founder) | images/captures → taste-spec + refinement | `packages/engine-claude` (stub) | | **Experience** (designer + PE) | polished, prop-driven components | `packages/ui` | | **Scaffolding** | routes, data, API, endpoint, extension | `apps/web`, `packages/db`, `packages/core` | The contract everything shares is [`packages/core`](packages/core/src): the `TasteSpec` artifact and the `TasteEngine` interface. **Swapping the real engine in is one env var (`TAST