2
10 Comments

Handing a finished website to a client in one link

Every agency and freelancer has a version of the same handoff problem. The site is done. The client needs DNS records, CMS credentials, analytics access, hosting details, maybe an SSL cert snippet. And somehow this always turns into a 14-message email thread where half the values get copied wrong and nobody knows what was actually used.

We build tools at Inithouse, and we kept running into this ourselves. After the third time a client pasted the wrong A record and pointed their domain at someone else's server, we looked at what the handoff actually contains and why it keeps breaking.

What goes into a website handoff

A typical handoff includes at least four categories of values:

DNS and domain setup. CNAME records, A records, TXT verification strings. These are long, they look alike, and a single wrong character breaks the whole thing. When you paste three DNS records into a Slack message, there's no visual separation between which record is which type and which value belongs to it.

CMS and admin access. The admin URL, login email, temporary password, maybe a 2FA recovery code. These usually go into a separate message "for security reasons," which means the client now has credentials scattered across two threads with no way to confirm they used the right ones.

Analytics and tracking. GA4 measurement ID, GTM container snippet, maybe a Clarity project code. Each one needs to go into a different place on the client's end, and the client rarely knows where.

Hosting and deployment. Which platform, which plan, auto-renewal date, the deploy hook URL if they want to trigger builds themselves. Information they will need in six months when something breaks and nobody remembers the Slack thread.

That is a minimum of 10-15 distinct values. Not a document. Not a PDF. Just values that need to be copied exactly, one at a time, into the right fields on the client's side.

Why email and chat break this

The core problem is that a chat message or email treats all of this as a block of text. The recipient reads through it, highlights a value, copies it, pastes it somewhere, scrolls back to find the next one, and hopes they got the right line.

Three things go wrong routinely. First, partial copies. The client selects the A record but accidentally grabs a trailing space or misses the last digit. DNS is not forgiving about this. Second, no progress visibility. The agency has no idea whether the client actually used all the values or stopped after the first two and got distracted. The follow-up email "did you set everything up?" usually comes three days later. Third, no expiration. Those credentials sit in the email thread indefinitely. If the agency rotates the client's temporary password, the old one is still right there in the inbox.

How we handle this with copycopy.site

We built copycopy.site as a structured handoff tool. Instead of sending a message, you build a card where each value is a labeled field with its own copy button. The client gets one link, copies each value individually, and both sides see which fields have been copied.

Here is what the workflow looks like for a website handoff:

Building the card. Open the editor, paste your handoff notes. The tool detects labels and values and turns them into structured fields. You can also start from the "Freelance handoff" template, which pre-populates a website handover structure with sections for DNS, CMS access, and hosting details. Edit whatever does not fit.

Sharing. You get a private page for yourself and a share link for the client. Set expiration to 7 days (or whatever makes sense for the project timeline), and the link dies automatically after that. If the client says they are done, you can revoke access immediately.

Tracking progress. Each field has a state: pending, copied. The card shows a progress counter: "3 of 12 required copied." You know exactly where the client stopped. If progress stalls at 4 of 12, you can reach out and ask about the specific fields they have not touched, rather than resending the whole block.

One thing we found matters more than expected: the distinction between copied and actually used. We show honest progress states. "Copied" means the value went to the clipboard. It does not mean it was pasted into the right field on the client's end. This sounds like a small thing, but it prevents the false confidence of "they copied everything, so we are done." The progress tells you what was picked up, not what was applied.

Three builder decisions behind this

A few choices shaped how copycopy.site works, and they came directly from building handoffs for real projects.

Per-field copy buttons, not "copy all." Early on we considered a "copy entire card to clipboard" button. We dropped it because it recreates the exact problem: a wall of text that needs to be parsed again on the other side. Each value goes into a different place (registrar DNS panel, CMS login form, GA4 admin). Copying them one by one is slower for the sender to set up, but it is the only way the recipient does not lose values.

URL-generated cards for automation. Agencies that hand off multiple sites per month do not want to open an editor each time. So we added the /new?v= parameter: encode your label-value pairs in the URL, and the card renders instantly. If your project management tool spits out a handoff checklist, you can generate the card link automatically and drop it into the client's ticket. Nothing is stored until someone explicitly saves it.

No account on either side. The recipient should not need to sign up to get their DNS records. And the sender should not need to maintain yet another set of credentials just to share values. Cards are created without auth. Links work without auth. Progress tracking works without auth. This was a deliberate trade-off: we gave up user accounts (and the retention loop that comes with them) because the product is about the handoff, not about the platform.

What we are watching

We shipped the "Freelance handoff" template three weeks ago, and the signal we are tracking is whether agencies adopt it as a repeatable step in their project close-out process, not just a one-off. Repeat usage tells us whether the per-field copy and progress tracking actually reduce the "did you get everything?" follow-ups, or whether the overhead of building a card is not worth it compared to just sending an email.

The broader bet with copycopy.site is that structured handoff cards work for any situation where exact values need to move between two people without being retyped. Website handoffs are one of the clearest cases, but the same problem exists in IT onboarding, vendor setup, and even something as simple as sending someone an invoice with a bank account number they need to copy correctly.

If you handle website handoffs regularly and have opinions on what a handoff card should include, we would like to hear it.

on September 24, 2026
  1. 1

    Appreciate the honesty here, most people only share the wins.

  2. 1

    What made you pick this stack over the alternatives?

  3. 1

    Helpful post. How did you get your first bit of traction?

  4. 1

    Good point. Did you test that with users before committing to it?

  5. 1

    Clear and practical, thanks. Did anything surprise you along the way?

  6. 1

    Thanks for sharing the numbers, that makes it much easier to follow.

  7. 1

    Great breakdown. What feedback have you had from early users?

  8. 1

    Nice work shipping it. What has been the biggest challenge since launch?

  9. 1

    Pasting A and CNAME values into a chat thread and getting one character wrong is such a common failure. Separating the handoff by record type is a small change with a big payoff.

  10. 1

    This resonates a lot — how long did it take before you saw any real signal on it?