I built Cursor for product design
AI design agent that turns conversations into interactive prototypes. 10K users, paying customers.
When I started using Cursor, I noticed I'd stopped opening Figma.
Not a conscious decision. I just realized one day that I hadn't logged in for weeks. The AI models had gotten good enough at translating what I described into real interfaces that the traditional design workflow — clicking, dragging, nudging pixels — started to feel like the slow path. I'd describe what I wanted, iterate a few times in conversation, and end up with something that genuinely met my standards. That's when it clicked: there should be a Cursor for product and design people.
The other thing pushing me was freelancers. As someone always spinning up new projects, I'd been outsourcing design work on Fiverr and Upwork for years. I burned through so many designers. Most were bad. The good ones were expensive and booked out. A simple landing page could take weeks of back-and-forth to get right, and half the time I'd end up taking their files and redesigning everything myself anyway. AI could match or beat that quality in thirty minutes. The economics weren't even close.
So I built UXCanvas. You describe what you want in a chat — a SaaS dashboard, a marketing site, a mobile app — and the AI generates interactive prototypes in real-time using React and Tailwind. You watch your design materialize on the right side of the screen as you talk. Don't like the spacing? Say so. Want a different layout? Just ask. When you're done, export the whole thing as a working codebase or push it straight to Figma.
The engineering is what I'm most proud of. The platform runs as a set of microservices — a web frontend, an AI agent service, a builder that compiles React projects inside Docker containers, and a screenshot service for generating previews. The agent maintains awareness of your entire project across conversations, tracking which screens exist, what components you've built, and what you've discussed. I rebuilt the context pipeline multiple times to get exactly the right information in front of the model at the right moment — the difference between a useful response and a hallucinated one often comes down to what context you feed in.
One of the more interesting pieces was the auto-repair system. When the AI generates a component with an error, instead of surfacing the broken state, the system captures the error, compares it against the generated code, and retries internally — usually fixing it before anyone notices something went wrong. It's a small detail, but it's the kind of thing that separates a demo from a product people actually use every day.
I built all of this before ChatGPT shipped Canvas. Lovable was around, but the "AI builder" space was still early, and the architecture I put together — multi-model support across OpenAI, Anthropic, and Google, with credit-based billing, version history, and a full build pipeline — was ambitious for the time.
Around ten thousand people have signed up. There are paying customers using UXCanvas every day. Some power users have built out fifty-plus screens and sent over a thousand messages, designing entire applications through conversation. Watching someone use the product at that depth — building something genuinely complex that I didn't anticipate — is one of the more satisfying things I've experienced as a builder.
One of the properties I love most is that UXCanvas gets better without me writing a line of code. Swap in a stronger model and every user's output quality improves overnight. The architecture is model-agnostic, so as the frontier moves, the product moves with it.
This project taught me more about agentic engineering than anything else I've worked on. Context shaping, tool orchestration, error recovery, the art of giving an AI exactly what it needs to make good decisions — it all clicked into place building this. It's the project I learned the most from, and it's still growing.