Guide · Client work
Send a prototype to a client for review
You built a landing page, a clickable mockup or a small demo, and the client wants to see it. Zip the folder, drop it in, and send them a link such as acme-homepage-v2.flatpage.page. After their feedback, upload the new version to the same site. They refresh the same link.
Last checked 25 October 2026
From your folder to their phone
Zip the build
Zip the folder with index.html at the top, plus the CSS, scripts and images it uses. A single .html file works too.Drop it in
Sign in and drag the zip onto your dashboard. Add a password if the work is confidential (Starter and up).Send one link
Paste the link into your email or chat, or show the QR code in a meeting so they open it on their phone.
The review loop: one link for every round
Sending a prototype is the easy part. The mess comes later: v2 in an email, v3 in a chat, a zip attachment the client can't open on their phone, and feedback on a version that's two rounds old. With Flatpage the link belongs to the site, not to a file. The loop looks like this:
- Send the link once, at the start of the project.
- The client opens it on whatever they have to hand, usually a phone between meetings, and sends you notes.
- You make the changes and choose Replace on the same site. The new version is live in seconds.
- You reply "updated, same link". Nobody has to dig for the newest attachment.
Your dashboard shows how many times the link has been opened, so you can tell whether the client has looked before you chase them.
How it compares to the usual ways
- Email the zip. Phones can't open it, desktop mail may block it, and the client has to unzip it and double-click the right file. Every round is a new attachment.
- Put it on Google Drive or Dropbox. They show the HTML as code or download it, so the client never sees the page. See why Drive shows HTML as code.
- Screen-share or screenshots. Fine for a first look, but the client can't click around on their own time or check it on their phone.
- A tunnel to your laptop (ngrok and similar). Good for a live app with a backend, but the link dies when your laptop sleeps.
- A full hosting platform. Netlify, Vercel and GitHub Pages all work and are free to start, but they expect a repository or a build setup, and their default addresses are built for developers rather than clients.
Keeping client work private
A link that isn't published anywhere is hard to stumble on, but links get forwarded. For anything under NDA, use a password (Starter and Plus). The password is checked on our server before any part of the page is sent. Some free hosts offer a "password" that is really a bit of JavaScript on the page; anyone who views the source can read the content behind it.
When the project is over, delete the site from your dashboard and the link stops working straight away.
What breaks and how to fix it
- The page is blank or unstyled. The HTML points at files with absolute paths, like
/Users/me/site/style.cssorC:\site\style.css. Change them to relative paths (style.css,images/logo.png) and zip the folder that containsindex.html. - The upload is rejected for a missing index.html. The zip has several HTML pages and none of them is called
index.html, so there's no way to tell which one is the start page. Rename the first page toindex.html. An extra folder level inside the zip is fine; we unwrap it. - Links between pages work, but refreshing a page gives a 404. The prototype is a single-page app (React Router, Vue Router) that expects the server to send every path to
index.html. Use hash routing (#/about) for the review build, or link to the pages as separate .html files. - Images show a grey placeholder. The page refers to images that weren't in the upload. We swap missing images for a placeholder so the layout holds; add the files to the zip and replace.
When Flatpage isn't the right fit
Flatpage hosts static files: HTML, CSS, JavaScript, images and PDFs. If your prototype needs a server, a database or server-side rendering (a Next.js app with API routes, a Rails or Django app), deploy it to a platform that runs code, or share a static export. And if the client should leave comments pinned to parts of the page, a design review tool will serve you better than a plain link.
Questions
- Does my client need an account?
- No. They open the link in any browser, on a phone or a laptop. Only you sign in, to upload and replace the files.
- Can I keep the prototype private?
- The link isn't listed anywhere, but anyone who has it can open it. On Starter and Plus you can add a password, which is checked on our server before any of the page is sent, so it can't be bypassed by viewing the source.
- What if I upload a broken version by mistake?
- Upload the previous files again to the same site. Every upload is stored as its own version and the link always serves the newest one, so the fix is live as soon as the upload finishes.
- The prototype works on my machine but is blank on the link. Why?
- Usually one of two things: the HTML points at files on your disk with absolute paths, or it's a single-page app that expects a server to handle its routes. See “What breaks” above for the fix for each.
- Will search engines find my client's unreleased site?
- Not unless someone publishes the link somewhere public. If the work is confidential, add a password on a paid plan. A password-protected page can't be read by search engines or anyone else without it.
- Can I show my client a Figma, Framer or Webflow design this way?
- Only if you export it to HTML files first. If the design tool already gives you a share link, use that. This is for prototypes that exist as HTML, CSS and JavaScript files, including ones an AI tool wrote for you.
Related
Send your next prototype as a link
Drop the zip, send the link, replace after feedback. Free for one site, no card needed.