Every campaign tool lets you save a template. What it doesn't do is enforce that template — so three months and six teammates later, your emails are running four different button styles, two font stacks, and a CTA color that never passed contrast in the first place.
I built kopi to solve the upstream problem: not "how do I make a good email faster" but "how do I stop re-litigating brand decisions every time someone opens a new blank canvas."
The way it works: you define your design system once — fonts, hex values, spacing rules, layout preferences. Kopi internalizes those as constraints, not suggestions. Every email it generates is built against that spec, not around a generic template you have to manually strip back to brand.
The part that caught me off guard building this: the design system also feeds the scoring pass. Every output gets evaluated against 12+ criteria — layout hierarchy, mobile readability, CTA contrast — on a 0-100 scale. That score isn't abstract; it's partly grounded in whether your specific brand choices (say, a low-contrast palette you chose deliberately) are applied consistently, versus slipping. A campaign that scores 80+ in the public gallery at trykopi.ai/emails hit that bar with real brand constraints active, not on a clean default.
The Klaviyo integration handles export directly, so the path from brief to campaign is: write a prompt, get a scored HTML email in under 5 minutes, push to Klaviyo. No copy-paste, no manual QA pass to check if someone swapped the button color again.
If you're working in Claude Code or Cursor, it also runs as an MCP server — same generation and scoring, inside your editor.
Code and details: trykopi.ai
Top comments (0)