Product Thumbnail

ditto.site

Clone any website into clean code. Free & open source

Design Tools
Open Source
Developer Tools
GitHub
Visit WebsiteSee on Product HuntGithubTwitter

Hunted bySamraaj BathSamraaj Bath

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.

Top comment

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

Comment highlights

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.

honestly this looks really useful, but one thing i'd love to see is a diff view between the original site and the generated code so i can quickly understand what ditto decided to extract or skip

Honestly this is kind of wild, I pointed it at a random landing page and got back actually clean componentized code instead of the usual div soup. Hover states and tokens coming through too was a nice surprise.

Love how fast and consistent Ditto is. One thing that would level it up for me: a visual diff mode where I can paste my own hand-written component next to the generated one and see them side by side. Perfect for cleaning up legacy markup and spotting what the AI missed or got wrong.

ran it on a cluttered landing page i had bookmarked and the component split came out way cleaner than i expected, hover states and all. the free rest api is a nice bonus for quick experiments.

Would love a "rebrand swap" mode where I paste a palette and font choice and ditto restyles every component in the generated output, so I can skip the tedious find-and-replace pass after cloning a competitor's layout. Would be a killer add for solo builders migrating inspiration into their own brand.

the fact that hover states and interactions come through cleanly in the generated code is honestly kind of wild, most scrapers just hand you a flat mess of divs.

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 344 upvotes and 87 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.1k followers) and GitHub (41.3k followers) on Product Hunt. Together, these topics include over 156k 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.