The client can't open the zip

You are not shipping to engineers. You are shipping to a person who checks email on a phone, has never used GitHub, and whose entire interaction with your work is whether a link opens.

So the three habits that are normal between developers all fail:

  • Email the file. The attachment gets stripped, or it arrives and opens blank because you sent index.html without its assets/ folder.
  • Send a localhost URL. It resolves on exactly one machine — why that never works for others.
  • Send a repo link. They see raw HTML, or a login wall, or both.

Send a URL instead

Drag the build output in, or publish it from your terminal. The client gets an https:// address that opens in whatever browser they already have — desktop, phone, tablet — with no account, no install, no extension, no "allow this file" dialog.

If the deliverable is a built site rather than one page — a static export, an Astro, Eleventy, Hugo, Gatsby, Jekyll, Nuxt or Zola build, or a Storybook — publish the whole folder. Relative links and assets resolve, which is what stops the "it looks broken" email.

Get feedback you can act on

Client feedback is famously unactionable because it arrives detached from the thing it describes: "the header is a bit much", sent as a voice note, about a page with three headers.

A comment link fixes the geometry. They highlight the header and type next to it. The note stays anchored there, you see exactly what they meant, and the whole round trip is one link instead of a meeting. See commenting on HTML.

When you've made the change, publish a revision at the same URL. The client refreshes the link they already have — no "v2" email, no confusion about which version they're looking at, and the earlier version stays in the history if they change their mind back.

The boring commercial parts

  • Taking it down. Set visibility to private when the engagement ends or the invoice clears; the link stops working immediately. Expiring links are an Enterprise feature.
  • Client accounts. They never need one, and they are never billed. Pricing is per publisher.
  • Your branding. The HTML is yours — logo, fonts, the lot. Serving it from your own domain with no "Published on Comma" mark is Enterprise.
  • A record of what you delivered. Revision history plus comment threads is a better answer to "this isn't what we agreed" than a search through WhatsApp.

Worth knowing

  • Start private if it contains anything real. A staging build often has test customer data in it — see sharing & access control.
  • Big files. Entry HTML 5 MB; assets 25 MB per file, 250 MB and 500 files per report. If you were about to email 40 MB, see HTML file too big to email.
  • Interactive prototypes stay interactive. Scripts run in a sandboxed iframe, so a clickable prototype is still clickable.

Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision history. Clients never need an account.

Start free →

Related