DEV Community

Jakub
Jakub

Posted on

copycopy.site by Inithouse: structured handoff cards you can generate from a URL, with JSON for agents

Twenty ready-made handoffs, three ways to build a card, and one link where every value has its own copy button. That is copycopy.site, a free structured handoff tool we built at Inithouse. You paste logins, DNS records, an invoice or a screenshot, share one link, and watch honest progress as the recipient copies each field. No account is needed on either side.

The interesting part for developers is not the editor. It is that a card can be generated straight from a URL, with nothing stored on our side, and read as JSON by an agent.

The unit is a field, not a message

Chat picks the message as its unit: a blob of text the recipient scans and retypes. Secret-sharing tools pick the secret: one value, one view, then it burns.

copycopy.site picks the field. A field is a label, a value, a required flag, an optional note and a state. A card is fields grouped into sections. Every field gets its own copy button, so a CNAME with a trailing space stops being a two-day thread.

What that changes against the usual options

What a handoff needs Chat message One-time secret link copycopy.site
Copy one value without selecting text Manual selection Whole blob at once Copy button per field
Multiple values in one place Yes, unstructured Usually one secret Fields grouped into sections
Sender sees what was taken No View count only Progress per field
Account needed Both sides Sender usually Neither side
Expiry and revocation No Burn on read 1 to 90 days, revoke any time
Machine-readable No No JSON: label, value, state

Cards from a URL, with nothing stored

The route is /new and it takes four query parameters:

  • v: the values in Label: value format, one per line (newline as %0A)
  • title: card title, optional
  • purpose: a one-line note under the title, optional
  • expires: days until expiry, 1 to 90, applied only if the card is saved

Encoded, a DNS handoff is one line:

https://copycopy.site/new?v=CNAME%3A%20www%20-%3E%20proxy.example.com%0AA%3A%20203.0.113.10&title=DNS%20for%20client&purpose=Point%20the%20domain
Enter fullscreen mode Exit fullscreen mode

Open it and the card renders with two fields, two copy buttons and a progress line reading "0 of 2 required copied". The page states what happened on the server, which is nothing: the card lives only in the link.

Generating one from a ticket system is a few lines:

const values = { Ticket: "REQ-2026-0417", Customer: "ACME-4471", Plan: "Pro" };
const v = Object.entries(values).map(([k, val]) => `${k}: ${val}`).join("\n");
const url = `https://copycopy.site/new?${new URLSearchParams({
  v, title: "Support handoff", purpose: "Generated from the ticket system"
})}`;
Enter fullscreen mode Exit fullscreen mode

No API key, no signup, no rate limit to think about, because nothing is called on the server. Saving the card is a separate step, and it is what gives you the share link, the expiry and the tracking. The 20 templates at copycopy.site/examples cover the same ground for people who would rather start from DNS verification, cluster access or employee onboarding than build a URL.

Honest states: copied is not pasted is not completed

Clicking Copy proves the value reached the clipboard. It does not prove the value landed in the registrar's DNS panel. So copycopy.site tracks those separately and both sides see the same progress view. That distinction removes the one message every handoff thread contains: "did you get it?".

Machine-readable by design

Every card is a plain structure of typed fields, and that structure is what an agent reads:

{
  "card": "hc-8f3c",
  "items": [
    { "label": "API KEY", "value": "pk_live_8f3c9a2d4b71", "state": "copied" },
    { "label": "WEBHOOK URL", "value": "https://hooks.example.net", "state": "pending" }
  ],
  "progress": "2/4"
}
Enter fullscreen mode Exit fullscreen mode

An onboarding agent does not click a button to get the webhook URL. It reads items[1].value and the state moves, while the human on the other side sees the same progress bar.

That decision comes from what we keep measuring at Be Recommended, our AI visibility tool: assistants pick up what is structured and skip what is only rendered. Building a handoff tool as a pretty page would have contradicted our own data.

When to use which

  • One-off values, nothing to track: build a /new URL, send it, nothing is stored.
  • Values that need tracking, expiry or revocation: save the card and share the link.
  • A tool or agent on the receiving end: save the card and point it at the JSON.
  • A single secret that must self-destruct after one view: that is still a one-time-secret tool, not this.

copycopy.site is free, runs in the browser, and needs no signup from the sender or the recipient. We build it at Inithouse, a studio shipping a growing portfolio of AI products and custom agents. Other tools from the studio include Be Recommended, which scores how ChatGPT, Claude, Perplexity and Gemini recommend a brand, and Here We Ask, a free browser conversation card game with 1,000+ questions that also runs with no account.

Top comments (0)