Self-service
Copythis site
We run an index arguing that most software is copyable and the moat is somewhere else. Withholding our own source would rather give the game away.
Below is the entire specification, written to be pasted into a coding agent with no editing. It builds the routes, the data model, the design system and the editorial rules. It will not give you the entries — those are hand-written, and they are the actual work. Which is, more or less, the whole argument of this website.
Build a complete, production-ready Next.js site called "Can AI Copy It?" — a public index that scores products by how much of them an AI coding agent can reproduce in a single session, and what is left over when it finishes.
## Premise
It is a compatibility table for copyability. Each entry answers one question — can an agent copy this? — with a verdict, an honest account of where the copy breaks, and a ready-to-paste prompt for attempting it. The editorial line is that the code is almost never the moat, and the index exists to show what the moat actually was.
## Stack
- Next.js (App Router, TypeScript, React Server Components), Tailwind CSS v4, no UI library.
- Static generation for every route. No database, no auth, no analytics, no cookies.
- Content is one JSON file per entry in data/targets/. Adding an entry is a pull request.
- Fonts via next/font: a tight grotesque for display, a monospace for data and labels.
## Data model
Each entry in data/targets/<slug>.json:
slug string, must equal the filename
name string
domain string, bare hostname
category string, one of the category slugs
what string, one line: what the product actually is
verdict "one-shot" | "skin-deep" | "nice-try"
copyTime human phrase — "an afternoon", "a long weekend", "you won't"
copyable string[] what an agent genuinely nails on the first pass
wall string[] where the copy stops being a copy
moat string[] what actually protects them, if anything
prompt string a real, pasteable one-shot prompt for building it
priorArt { name, url, note? }[] optional
invitesIt boolean true if the product open-sources itself or invites clones
license string optional
notes string optional editorial aside
featured boolean optional, pins to the top
The loader reads the directory at build time and throws if a slug does not match its filename. Sort order: featured first, then by verdict rank, then alphabetically.
## Verdicts
- ONE SHOT — one prompt, one session, a copy you would actually use.
- SKIN DEEP — you will clone the interface and then meet the wall.
- NICE TRY — the moat was never the code.
Colour them consistently: one-shot cyan, skin-deep ochre, nice-try magenta. Render them as bordered monospace stamps, and as a large rotated stamp on detail pages.
## Routes
- / hero, a four-figure stat strip, a pinned featured entry, then the full index
- /:slug the entry page
- /categories all categories with their entries nested
- /category/:slug one category
- /copy-this-site this prompt, rendered on the site, with a copy button
- /method how verdicts are decided, and the site's position on copying
- /submit the JSON schema and how to open a pull request
- sitemap.xml, robots.txt, and a generated OG image per route
## The index component
A client component over the full set: a search input matching name, domain, description and category, plus verdict filter buttons. Use useDeferredValue so typing never blocks. Render as a numbered table with columns for rank, target, category, verdict and time to copy; collapse to a stacked card layout below the large breakpoint. Show a live "N of M shown" count and an empty state that links to /submit.
## Entry page structure, in order
1. Breadcrumb, "Can AI copy" eyebrow, the name as a huge display heading, the one-liner, and the verdict as a large stamp.
2. A badge when invitesIt is true, naming the licence.
3. A four-cell spec strip: verdict, time to copy, category, licence.
4. The prompt, in a bordered monospace block, with a copy button and deep links to agents.
5. Three columns: what copies cleanly, where it stops, what actually protects them.
6. Editor's note.
7. Prior art as an outbound list.
8. A panel linking to the original product, encouraging the reader to judge for themselves.
9. Related entries.
## Design direction
The visual language is reprography — the aesthetic of copying itself. Newsprint stock rather than white; near-black ink; a fixed SVG grain overlay at low opacity using multiply in light mode and screen in dark. Display headings get a misregistration effect: cyan and magenta ghost copies offset a few pixels behind the text, implemented with ::before/::after on a data-text attribute so it never touches the accessibility tree. Hairline rules everywhere, as though the page were a printed form. A registration crosshair as the logomark. Dark mode is "night shift" — the same press running after hours — driven by prefers-color-scheme with a data-theme override, a toggle, and an inline head script that applies the stored choice before first paint.
Do not use a terminal-green-on-black theme. Do not use JetBrains Mono or Space Grotesk. The point is to look like nobody else.
## Accessibility and performance
Every interactive element reachable and operable by keyboard, with a visible focus ring. A skip link. Decorative marks hidden from screen readers. Honour prefers-reduced-motion by disabling transitions. No layout shift from font loading. No client JavaScript on routes that do not need it — the entry pages are fully static.
## SEO
Question-shaped titles ("Can AI copy X? Nice try"). Canonical URLs on every route. JSON-LD: ItemList on the homepage, BreadcrumbList and FAQPage on entry pages. A generated sitemap. Per-route OG images rendered with next/og in the same print aesthetic.
## Editorial rules — these matter more than the code
- Be fair. Assess engineering scope, never the character of the people who built the thing.
- Be specific about the wall. "It's hard" is useless; "duplicate-letter resolution is where every copy fails" is the product.
- Never claim a copy is a replacement. Distinguish what an agent produces from what a business is.
- Where a product open-sources itself or invites clones, say so prominently and with respect. That is a position worth crediting, not a weakness to exploit.
- Write original prose for every entry. Do not reproduce copy, layout or brand identity from the product being assessed.
## Finally
Include this prompt on the site at /copy-this-site, and keep PROMPT.md in sync with it. A site arguing that everything is copyable has no business hiding its own source.One condition, and it is not legal
Write your own entries. The prompt hands you a working site in an afternoon, and an empty index is worth nothing — which is the same lesson sitting in half the verdicts here. If you copy the judgements too, you have not built an index. You have built a mirror.