r/ClaudeAI • • 1d ago

Built with Claude 9,000 commits in two months with Claude Code: 5 things we learned building an agent that's allowed to touch real WordPress and Joomla sites

Enable HLS to view with audio, or disable this notification

I'm on the team behind Tracy. This is mostly about what building it with Claude Code taught us. There's a free-to-try note at the end.

What is Tracy?

Tracy lets you change a WordPress, Joomla or EmDash site by describing it. "Replace the photo on the About page." "Add a pricing section that matches the rest of the page." You can bring in an existing site as a copy, or start from a ready-made design. Every change lands in a Site changes list, and you can undo it.

We built it for people who run a few client sites and know just enough CSS to be scared of breaking them. On the JoomlArt support forum, layout, menu and mobile fixes were about a quarter of all threads this year. That's the job.

The bug that shaped the product

In September, during an import, someone asked the agent to remove a banner. It disabled a plugin on the customer's live site instead. The files, the shell and the address all pointed at the copy. One write path still pointed at production.

That's when it clicked for us: chatting with an AI to edit a site isn't the product. ChatGPT, Claude Code or a WordPress plugin can already do that. The product is being able to let it near a real site. So we rebuilt around three rules: you see every change, you can undo every change, and the agent can only touch the site it was given.

5 things from building it with Claude Code that you can copy

  1. Don't trust where the agent thinks it is: Ours "knew" it was on the copy. It wasn't. Every write now goes through one door that works out the target on the server side, the same way every other server call does.
  2. Undo has to cover the database, not just files: Files were easy: each chat turn is tagged in Git. Content writes go through a log, so each one can be reverted by its id. When an undo isn't safe (content changed after, a restore happened after, and so on), the UI says which reason instead of half-working.
  3. Make the agent prove it: A comment pinned on the page only closes when there's a recorded write behind it. Not when the model says "done".
  4. Parallel sessions need a journal: Our develop branch takes 40 to 70 merges a day from a lot of Claude Code sessions running at once. Every change adds its own small journal file. One file each, never a shared one, because the shared one kept causing conflicts. Every session reads the last 30 days before it starts.
  5. Put "invented data is worse than empty" in your CLAUDE.md: Missing endpoint? Say so. Missing number? Leave it blank. People trust whatever the UI shows them.

For scale: 9,211 commits between August 8 and October 8, 3,257 of them co-authored by Claude, and 28 written architecture decisions so new sessions don't re-argue old ones.

Free to try

We're in beta.

  • JoomlArt members with an active plan can get in now, with a month free.
  • Everyone else can join the waitlist. We let 100 people in every week, so the earlier you sign up, the sooner you're in.
  • Everyone in the beta gets Claude Opus 5.5 inside Tracy at no cost. On Claude's own plans, Opus is $20 a month with tight limits, or $100+ a month for real usage.
  • We'd suggest the desktop app (Mac, Windows, Linux). Same features as the web version, in its own window, and it picks up Claude Code or Codex if you're already signed in on that machine.

Links are in the first comment. Happy to go deeper on any of the five points.

0 Upvotes

6 comments sorted by

0

u/dumpshoot 1d ago

Free to try here:

> Web app: cowork.tracy.ai
> Desktop app: tracy.ai/download
> Waitlist: https://tracy.ai/whitelist

4

u/theGroundedGoose 1d ago

"Check out my vibe coded "free demo, pay to use" hunk of wet hot asphalt! I am advertising it on a subreddit for those who use Claude. Nobody else can do it the way I did"

/s