I went to bed Friday night and woke up Saturday morning to a working design tool. By Sunday there were 93 source files, 51,000 lines of Svelte and TypeScript, and 244 commits. I didn't write any of it. I've never even looked at the code.
I've been calling it Designer. It's a Figma-style design tool that I'm building as part of a larger dev dashboard. Google had just released updates to Stitch, and since theirs isn't open source, I figured I'd try building my own. The whole thing is vibe coded, and I think it came out surprisingly well.
I want to share how I set it up because I think anyone could do this.
The loop
I used a Ralph loop, which is a pattern that's been floating around since mid-2025 — you put a coding agent in a while true loop and let it grind through a plan. I have a task manager called td that I built for AI agents. It tracks issues, priorities, and reviews. The key thing about td is that when an agent finishes a piece of work, it can't approve its own review. A different agent session has to look at it.
I wrote a plan, broke it into about 90 tasks under one epic — things like layer panel keyboard navigation, image element support, the auto-layout engine, canvas version history — and started the loop. It's a bash script that runs Claude one iteration at a time. Each iteration picks the top-priority open task, builds it, commits, and exits. The script handles rate limits, timeouts, and fallback models.
Then I went to sleep.
Why I think it worked
The plan was good. I spent several hours upfront thinking about what Designer needed and breaking it into pieces that were each completable in a single agent session. That planning work is what I think made the difference more than anything else.
td also lets me add tasks to the backlog at any time, and the loop picks them up in priority order. So while the agent was working through the plan overnight, I could think of things during the day and just toss them into the queue. I didn't have to restart anything or coordinate with what was running.
The independent review helped too. Every feature got looked at by a fresh agent session that had no context from the one that built it. That caught problems that would have compounded if they'd gone unnoticed.
There's also a little TUI dashboard that shows what the loop is doing — task counts, commits, velocity, logs. I could check in on it when I wanted to and mostly just let it run when I didn't.
What Designer has after a weekend
"Figma clone" could mean a lot of things, so here's what's there:
| Area | Details |
|---|---|
| Canvas | Pan/zoom, viewport culling, LOD rendering that auto-degrades at low zoom, dirty-region tracking, minimap |
| Elements | Rectangles, ellipses, lines, paths, text, groups, frames, images. Gradients, drop shadows, blur, stroke alignment. |
| Frames | Auto-layout with direction, gap, padding, wrap, and constraints. Device presets for iPhone 16 Pro, iPad, Desktop HD, and others. |
| Layers | Search with name filter and type chips. Full keyboard nav. Batch visibility/lock toggle. Drag reorder. |
| Tools | Select, Rectangle, Ellipse, Frame, Line, Pencil, Text, Measure, Hand, Eyedropper. Same shortcuts as Figma. |
| Styling | Color picker with swatches. Gradient editor. Multiple fills and strokes per element. |
| Collaboration | Real-time cursors, remote selections, participant roster, WebSocket sync. |
| Versioning | Branches, diffs, merge UI, version history, proposals. |
| Animation | Timeline panel, keyframe editor, property interpolation engine. |
| Prototyping | Prototype viewer, click targets, flow diagrams. |
| Plugins | Sandboxed runtime, API bridge, SDK types. |
| Export | PNG and SVG with scale and format options. |
| AI | Chat panel that creates and modifies canvas elements directly. |
Figma has hundreds of engineers and a decade of development behind it, so I'm not comparing. But for a weekend, I think this is pretty remarkable, and it gives a sense of what's becoming possible for a single person.
| Source files | 93 |
| Lines of code | ~51,000 |
| Commits in 48 hours | 244 |
| Tasks completed | ~50 |
| Tasks still open | ~38 |
| Test files | 21 (355 tests, all passing) |
| E2E test suites | 12 (~11,000 lines) |
| Time I spent at the keyboard | Maybe 2 hours |
Where it fell short
Some tasks came back from review with real problems and needed a second pass. The agent occasionally built something adjacent to what I asked for. Visual judgment calls were harder for it than logic. There's a 4,196-line component file that needs to be broken up, and there's already a task in the queue for that.
I also had to restart the loop a few times because I messed up the script.
Where I think this is going
I spent my weekend planning, designing task structure, and occasionally checking the dashboard. The code wrote itself. I think that ratio is going to keep shifting, and I find that genuinely exciting.
A lot of people are doing this kind of thing right now. I went from "I wonder if I could build a design tool" on Friday to having one on Sunday, and I know I'm not the only one having weekends like this. It's a fun time to be making software.
I plan to open source all of this. Some of it already is:
- td — the task manager that runs the whole workflow
- Designer — the design tool
- marcus-skills — the Ralph loop scripts and TUI dashboard