Point Ditto at any public URL and get a faithful copy as clean, componentized Next.js or Vite code, in minutes. It's fully deterministic, so it's fast, cheap, and consistent. Components, tokens, interactions & hover states included. Free REST API + MCP server, open source.
Hey Product Hunt 👋
We're the team behind ion.design, and today we're open-sourcing ditto.site.
Ditto takes any website and gives you back a clean copy in Next.js or Vite. We extract actual components, sections, design tokens, and an editable content model. We even do our best to get hover states, focus states, dropdowns, accordions, declaritive motion, web fonts, SEO metadata, lottie animations, and responsive layout.
Ditto is fully deterministic, so it is fast, cheap, and consistent. An AI-based approach can't deliver this.
Why open source? We've been running a version of ditto inside ion.design since the start of the year and it's a bit too useful to keep to ourselves. ditto is an extremely valuable starting point for AI builders, because you can get a ready-to-go clone of a customer's website as soon as they sign up rather than a blank canvas.
What you get:
🧩 Clean, componentized Next.js or Vite + TypeScript. Optional Tailwind styling.
🎯 Deterministic. no AI guesswork, byte-stable output.
🔌 Free hosted REST API + MCP server, or self-host for best speed.
🎨 Tokens, interactions, hover states, fonts, SEO preserved.
🪪 MIT licensed, fully open source.
Try it: https://ditto.site
Star us: https://github.com/ion-design/di...
We're around all day! Give it a spin, tear it apart, tell us what you want, and use the hell out of it.
We're all in this together, let's create user value. 💚
- The ion.design team
Congrats on the launch! We had many secondary domains that were just forwarding to our main website, but now I will surely try Ditto so each one has its own landing page instead of a bare redirect. Quick question: for cloning the same source site to multiple domains, is the hosted API rate-limited or would you recommend self-hosting?
Wow, we've really reached this point now.
It's fascinating to see how far things have come, but at the same time, I honestly don't know how we should adapt and respond to this changing world. 😢
Clean componentized Next.js output from an arbitrary URL is the hard part that most scraper-to-code tools get wrong, they produce a flat HTML dump rather than anything a developer would actually want to maintain. Curious how the component boundary inference works, like whether it's doing semantic analysis of the DOM structure or something more heuristic.
Congrats on the launch. Ditto feels very useful for turning inspiration or legacy pages into an actual starting point instead of a messy screenshot-to-code exercise.
The deterministic angle is interesting too. For this kind of tool, consistency matters more than one lucky impressive generation. I’d especially want to try it on older marketing pages with weird CSS and see how clean the components and design tokens come out.
that's great btw , is that can only clone pre-auth landing pages or can also clone post-auth dashboard and heavy workflow pages? with interactions capture like modals, sidebar and button clicks?
Outside of just the extremely high utility, I actually wanted to say how awesome all the design is! From the wordplay on the name Ditto to the pixel art style, it is a really fun website to look at. Ive used some pixel art style in my own website and it always felt like a brave choice, so I'm happy to see a great product like this pull it off! The digital vibe of pixel rpg styles also works well with the code cloning purpose of the website. Super cool website!!
the deterministic-not-AI angle for getting hover states and interactions right is genuinely a smart technical choice. but pointing this at any public URL and getting back a componentized clone is exactly the kind of thing that gets a cease and desist fast if someone points it at a competitor's site instead of their own. is there any guardrail around cloning a site you don't own, or is that entirely on the user to sort out themselves?
the deterministic angle is what caught me. most of these tools hand the page to a model and you get something different every run. curious how it holds up on messy sites where the css is basically soup. also glad you shipped an mcp server, that's honestly how i'd use this
The componentization is what got me, not just the clone but the fact that tokens and hover states come through intact. That level of fidelity on the interaction layer usually takes weeks of cleanup work.
Pointed it at my portfolio site and got back surprisingly clean component code with the hover states actually working. The deterministic part is no joke, second run matched the first exactly. Solid open source move with the REST API included too.
pulled up a couple of sites and the generated next code was honestly way cleaner than i expected, like the component split actually made sense and not just a wall of divs
The deterministic output is such a smart call, makes the whole thing feel reliable instead of just another flaky scraper. Love that the components and tokens come through intact.
Love how fast and clean the output is, especially that it keeps hover states intact. One thing that would make this even better is letting me diff the generated code against the live site as it changes, so I can spot regressions during maintenance without having to rebuild from scratch.
the fact that hover states and interaction details actually make it into the generated components is such a thoughtful touch. so many site cloner tools strip those out and you're left with static-looking pages
ran a couple of pages through it and honestly the hover state capture caught me off guard, most scrapers ignore that entirely. the fact that it's deterministic means I can re-run on the same URL and get byte-identical output, which is huge for diffing changes over time.
Pulled a few landing pages through it and the component breakdown was surprisingly clean, hover states and all. Way less guesswork than I expected for a from-scratch rebuild.
Honestly surprised how clean the output is, not just a wrapper div with inline styles. Ran it on a landing page and got proper components with tokens and hover states, way better than I expected for free.
A diff view between the generated code and a hand-written baseline would be super useful so you can quickly spot where Ditto makes questionable choices, especially around accessibility or semantic HTML.
About ditto.site on Product Hunt
“Clone any website into clean code. Free & open source”
ditto.site launched on Product Hunt on July 21st, 2026 and earned 438 upvotes and 94 comments, earning #3 Product of the Day. Point Ditto at any public URL and get a faithful copy as clean, componentized Next.js or Vite code, in minutes. It's fully deterministic, so it's fast, cheap, and consistent. Components, tokens, interactions & hover states included. Free REST API + MCP server, open source.
ditto.site was featured in Design Tools (261.4k followers), Open Source (68.6k followers), Developer Tools (516.3k followers) and GitHub (41.3k followers) on Product Hunt. Together, these topics include over 156.5k products, making this a competitive space to launch in.
Who hunted ditto.site?
ditto.site was hunted by Samraaj Bath. A “hunter” on Product Hunt is the community member who submits a product to the platform — uploading the images, the link, and tagging the makers behind it. Hunters typically write the first comment explaining why a product is worth attention, and their followers are notified the moment they post. Around 79% of featured launches on Product Hunt are self-hunted by their makers, but a well-known hunter still acts as a signal of quality to the rest of the community. See the full all-time top hunters leaderboard to discover who is shaping the Product Hunt ecosystem.
Want to see how ditto.site stacked up against nearby launches in real time? Check out the live launch dashboard for upvote speed charts, proximity comparisons, and more analytics.