The customer's site has a personality. Their tool doesn't.
Real tools generated this month, next to the websites they're supposed to belong to. Pebb is warm, beige, grid-lined, with heavy geometric type. SleekPost is monospaced and technical. Their tools are the same anonymous form, in the same font, in the same layout.




Why it looks like this (it's not the model's fault)
Two fixed layouts
Every tool must render Layout from templates/variant-1 or variant-2. A build-time check SSR-renders the page and fails the build if that Layout isn't there.
One colour of brand input
The only thing we pass about the customer's look is a single hex colour (plus logo/name). No fonts, no palette, no screenshot of their site. The model literally cannot match what it can't see.
Contradicting instructions
The prompt says "be creative like Linear/Vercel, use gradients" and, a few lines later, "stay inside the Layout, only use brand-color, template preservation is mandatory". The safe reading wins every time.
A chat that only types
The builder has a hidden planner but never shows a plan, never researches, never offers options, rewrites whole files for small edits, and checks only that the code compiles — never how it looks.
What "good" looks like.
tmaker.io/tools: each tool is its own art-directed piece — an editorial headline, one strong idea, a custom interaction, data you want to screenshot and share. That's the ceiling for Creative mode. For Match-site mode the bar is "you can't tell it wasn't made by the customer's own designer."



Keep everything. Unlock the design.
Match my website
Before the first build we capture the customer's site once: full-page screenshot, real fonts, colour palette, radius, spacing, button and input styles, header/footer pattern, imagery mood. That becomes a compact style brief + reference screenshot the model designs against — no predefined components, just "make it belong here".
Creative freedom
The model art-directs the tool itself, tmaker-style: picks a concept, typography pairing and one signature interaction that fits the keyword. Brand colour and logo still respected, but the page is designed for the tool — not poured into a shell.
Classic / Modern stay available for anyone who likes them. Existing tools are untouched until the customer rebuilds or edits one. Hosting, custom domains, sitemaps, related-tools grid and the FAQ/HowTo schema injection all keep working — they become a light semantic contract (a few data-attributes), not a fixed layout.
Design like a person: look, build, look again.
See the target
The model gets the customer's homepage screenshot as an image plus extracted design tokens. This one change does more than any prompt tweak.
See its own output
After building, we screenshot the result (desktop + mobile) and hand it back once: "does this look like it belongs next to the reference? fix the 3 worst things." That's the Claude Code secret sauce.
Stay cheap
Cached style brief, prompt caching, surgical edit tool instead of whole-file rewrites, one bounded review pass. Target: better tools at the same or lower tokens than today — measured, not guessed.
A builder that thinks before it types.
Research
Web search + page reading, so "make it like Omni's calculator" or "add the 2026 tax brackets" actually works.
Shows options, asks which
For anything visual it renders 2–3 quick directions as thumbnails and lets the user pick before spending a full build.
Shareable plan link
Bigger changes come with a plan the user can open, read and approve — just like the plan you're reading now.
Checks its own work
Every edit ends with a rendered screenshot check, not just "it compiles".
Built locally, shown on video, polished for days.
- Access & local stackAll three tools repos running locally against staging: builder service, E2B sandbox template, serving gateway, plus the Outrank app. Example product created and onboarded end to end.
- Baseline & eval setGenerate ~10 tools across 5 real customer sites with today's pipeline. Screenshot, record tokens and time. This is the "before" every change is scored against.
- Style capture + free-form buildSite capture → style brief, remove the Layout lock, new prompts for Match-site and Creative modes, SEO contract kept. Re-run the eval set, side-by-side screenshots.
- Visual self-review loopRender → screenshot → one critique pass. Tune for quality vs. tokens until the numbers are better on both.
- Builder chat 2.0Research tool, design options with thumbnails, shareable plan links, surgical edits, screenshot verification. Screen recordings of real sessions.
- Polish until it's boringEdge cases (dark sites, sites that block scraping, RTL, mobile), failure recovery, migration path for existing tools, then PRs per repo, small and reviewable.
You'll get recordings after phases 3, 4 and 5, and a running before/after gallery.
- E2B API key for the team that owns the
seo-tools-devtemplate (or invite me to the E2B team). This is the only hard blocker — without it nothing builds. - Write access to
outrank-seo-tools,seo-tools-e2b-image,seo-tools-containerso I can push branches and open PRs (I can read them already). - Optional: a separate dev R2 bucket for tool builds (otherwise I'll use a
dev/prefix), and AssemblyAI / CloudConvert keys if you want media tools in the test set. - Already have: all repos (read), Anthropic, staging Supabase, R2, Cloudflare, ScrapingBee, KIE.