# Popmelt

[View the designed case study](https://rbkh.design/projects/popmelt)

- **Role:** Co-Founder, Design and Engineering

- **Scope:** LLM, MCP, Web

- **Tenure:** 2025-present

- **Status:** Active

## Overview

Co-founder and product engineer, creating designer copilots for AI dev tools.

## Timeline

- **2025 — Taste → Code:** Built taste models and launched Popmelt to ~800 users
- **Winter–Spring 2026 — Context → Record:** Turned browser feedback into a daily-use AI collaboration surface
- **Summer 2026 — Core Memory:** Re-architected Popmelt around a living record of design decisions

## 2025: Taste → Code

When I started building the alpha version of [Popmelt](https://popmelt.com) in spring ’25, I had a crisp (if ambitious) goal: help AI make the kind of design decisions I do.

The technology felt world-changing, but by today’s standards it was rudimentary. Context windows were limited and fragile, and models tended to make a mess without careful direction. Even among early adopters, design quality was barely part of the conversation.

But it was for me, and it seemed obvious that anything expressible as code could be understood by an LLM. Having spent much of my career expressing design in code, I figured I was in a good position to help. I downloaded [Cursor](https://cursor.com) and got to work.

A lot of trial and error followed, eventually leading me to a compact schema for taste. It was something like a compressed text representation of a design system, ideal for models with small context windows and slow thinking, and easy enough to bridge to tools designers and frontend devs were already familiar with: [Figma](https://www.figma.com) components or UI libraries like [shadcn/ui](https://ui.shadcn.com).

These “taste models” worked well enough: one-shotted UI looked dramatically better than AI defaults, components felt intentionally designed, and the LLMs did a reasonably good job extrapolating to UI scenarios not explicitly defined by Popmelt. Great UI still required up-front intention and rounds of polish, but the amount of table-setting and babysitting was much, much lower. A qualified success.

![Let's make an email UI with Popmelt June](https://rbkh.design/projects/popmelt/popmelt-taste-model-generation.png)

*Let's make [an email UI](https://claude.ai/public/artifacts/cd01f1b0-fe1d-4cad-8140-dec418379286) with Popmelt June*

I built a cloud service to house the models, served them to LLM CLIs ([Claude Code](https://claude.com/product/claude-code), [Codex](https://openai.com/codex/)) and chat apps (Cursor, Claude, ChatGPT) via [MCP](https://modelcontextprotocol.io/), and launched to ~800 users at the end of the year.

[Watch project video 1](https://rbkh.design/projects/popmelt/popmelt-warp-preview.webm)
[Watch project video 2](https://rbkh.design/projects/popmelt/popmelt-warp-preview.mp4)

## Winter 2026: Context ergonomics

Over the winter, usage data confirmed what I was experiencing first hand: taste models beat the defaults, but didn’t dramatically change the game for ongoing design in a project. Models were getting faster, smarter, and better able to consume large codebases. That meant our compressed design systems were mainly useful for quickly restyling a traditional UI library: great at the start of a project, and pretty useless after that.

Through many rounds of day-job design work in Claude Code and Codex, I realized the bottleneck had moved to the interface. I was constantly shuttling context to LLMs so they could see what was happening and make the right change the first time. It worked, but the repetition begged for automation.

So, I pivoted to a daily-use dev tool: a collab surface living inside your local codebase, bridging design feedback in the browser to whatever CLI you were working with. I went from flipping between terminal threads and browser windows to chatting with my UI in my UI, queuing up rounds of feedback and watching the product evolve in front of me.

[Watch project video 1](https://rbkh.design/projects/popmelt/popmelt-inline-collaboration.webm)
[Watch project video 2](https://rbkh.design/projects/popmelt/popmelt-inline-collaboration.mp4)

It felt Big™️ instantly and seamlessly became a daily driver in my consulting work. In February I packaged it up, [published it for free on npm](https://www.npmjs.com/package/@popmelt.com/core), iterated for a month, and left to go on tour with my band.

## Spring 2026: A system of record

In the spring, I started to feel the pull of my original mission again. It had never been easier to work with AI, and the inline form factor still felt right. Frontier models were getting incredibly smart and fast, and the labs were spoiling everyone with massive weekly token budgets.

And yet. I still found myself reminding LLMs to, for example, use the pricing-card pattern we’d designed together the day before. I found myself fighting with their squishy instincts about how best to tackle component structure, information architecture, and interaction details. The ephemerality of every conversation was starting to loom, and native memory solutions in Claude Code and Codex weren’t doing the job.

Taste models started to look less like a complete solution and more like a seed, something to plant and then nurture over time. A living design record, growing as I collaborated with AI.

With no time to dig into a massive new feature, I made a small update: I had Popmelt start saving conversations and design decisions (locally). Then I published the change and went back to my regular work.

## Summer 2026: Core memory

As I returned from tour in late June, a thought I had reading Deutsch’s Beginning of Infinity was on my mind: most knowledge is implicit, and the capacity to make it explicit is a rare skill. It’s why many smart people are terrible teachers, and why watching a smart person work is so valuable. Their knowledge is encoded implicitly in their behavior, and the pattern of that knowledge only becomes visible over time.

By that point, various LLMs had been watching me work for a year. For about a month I’d had Popmelt documenting our collaboration privately. What knowledge, I wondered, could be inferred from that record? I pointed an LLM at the data and learned: quite a bit. Landmark decisions about a Cardspark [CardImage](https://cardspark.dev/docs/components/card-art) component’s style, its evolution from raw idea to latest iteration, time-decayed guidance on how and why it should be used, and an explicit, accurate description of my implicit intention for the object. My knowledge was all there, and the LLM could see it.

![5.6 Sol using Popmelt in the Codex CLI 1](https://rbkh.design/projects/popmelt/popmelt-evolution.png)

![5.6 Sol using Popmelt in the Codex CLI 2](https://rbkh.design/projects/popmelt/popmelt-decision-history.png)

*5.6 Sol using Popmelt in the Codex CLI*

In July OpenAI [released their first Sol model](https://openai.com/index/gpt-5-6/) and I worked with it to establish a new architecture for collaborative decision making in Popmelt. The records became richer, easier for LLMs to access, and structured cleanly for projection to various formats: taste models for quick reference, evals for formal verification, etc.

We’re in the tuning phase now, with a fresh release coming this month. What happens when other people begin building their own records is the next thing I want to learn.
