How to Host Client Landing Pages: Domain, Forms, Handover

To host a client's landing page, upload the built page to Statpio as a ZIP (or connect GitHub), point the client's domain at it with two CNAME records, and let Statpio capture any plain HTML POST form with built-in spam protection. Then invite the client into a portal under your agency's brand, where they see leads and traffic but can't touch code, DNS or billing. You can test the deploy and the forms on the free plan; the client's own domain needs Solo Pro, and the branded portal, client seats and change requests need Agency Pro.
The five steps below cover pages you build in code or with an AI site builder. If your client wants to edit the page visually themselves, read the last section first.
What do you need on each Statpio plan?
| What you need | Free Forever | Solo Pro ($9/mo) | Agency Pro ($99/mo) |
|---|---|---|---|
| Active projects (one per landing page) | 1 | 5 | 30 |
Free *.onstatpio.com address with SSL | Yes | Yes | Yes |
| Deploy (step 2) | ZIP upload | ZIP or GitHub push-to-deploy | ZIP or GitHub push-to-deploy |
| Password-protected review link | Yes | Yes | Yes |
| Client's custom domain (step 3) | No | 5 domains | 30 domains |
| Form submissions per website, per month (step 4) | 250 | 10,000 | 100,000 |
| Analytics (step 4) | Visitors, sources, pages, locations, devices; 30 days | Adds UTM campaigns, goals, funnels, live view; 90 days | Adds white-label email reports, share links, traffic alerts |
| Statpio badge on the page | Yes | No | No |
| White-label client portal, client seats, change requests (step 5) | No | No | Yes, up to 50 seats per website |
| Rollbacks kept | 5 | 20 | 50 |
Source: Statpio pricing, October 2026. Yearly billing is $89 a year for Solo Pro and $990 a year for Agency Pro. Extra projects cost $3 a month each and extra domains $0.50 a month each.
Step 1: What should you build or collect before hosting?
Plan: any. Statpio hosts static output: HTML, CSS, JavaScript and assets. Server-side code (Node servers, server-side rendering, API routes, server actions) does not run, so check how the page was built:
- Hand-coded HTML or a static site generator: works as it is; for a generator, upload its build output.
- React or Vite: run the build and upload the output folder (usually
dist). If the page uses client-side routes, turn on SPA Mode in Settings so a refresh doesn't return a 404. - Next.js: set
output: 'export'so the build produces static files. - AI builders: Bolt's Vite projects and older React + Vite Lovable apps build to static files. Lovable apps created since 13 May 2026 use TanStack Start, which needs a server, so they can't be hosted as they are. The guide to deploying AI-generated websites covers each tool.
While you build, collect these from the client so launch day isn't blocked:
- The exact address for the page:
www.clientbrand.com, or a campaign subdomain such asoffer.clientbrand.com. - Who manages their DNS, and whether you'll get access or send them the records.
- The email of the person who will follow up on leads, for the portal invite.
- Whether the client's privacy rules call for a consent notice (see step 4).
Step 2: How do you deploy the landing page?
Plan: any for ZIP uploads; GitHub deploys need Solo Pro or Agency Pro.
- In All Websites, click New Website and give it a name. The project gets a free
*.onstatpio.comaddress with SSL. - Verify your account email if you haven't yet. Statpio blocks deployments until you do.
- Open Deployments, choose Static Site, and drag in a ZIP of the built page.
index.htmlmust sit at the top level of the ZIP; a single wrapping folder such asdist/is also accepted. The largest single upload is 25 MB on Free, 50 MB on Solo Pro and 100 MB on Agency Pro. - To deploy from a repository instead, open Integrations, go to the GitHub Actions tab, connect your GitHub account, then pick the repository, branch, build command and output directory. Every push to that branch deploys automatically.
Get sign-off before launch. In Settings → Password Protection, set a password and send the client the onstatpio.com link with the password. This works on every plan. Remove the password once the client approves and the domain is live.
Step 3: How do you connect the client's domain?
Plan: Solo Pro (5 domains) or Agency Pro (30 domains). The free plan has no custom domains. DNS is the domain's address book, and a CNAME record points one name at another. You need two of them.
- Open Custom Domains in the project sidebar, under Website & Infrastructure.
- Pick a Domain Mode: www. Domain (recommended when the page is the client's whole site) or Custom Subdomain for an address like
offer.clientbrand.com. - Enter the domain, click Connect Domain, then open Setup to see the records.
- At the client's DNS provider, add the two CNAME records from the table below.
- Wait for the status to change from Pending DNS to Active. The refresh button and the Check CNAME on Google DNS links show whether the records are visible yet. SSL is issued automatically once the validation record is found.
- If you used www, forward the root domain (
clientbrand.com) tohttps://www.clientbrand.comwith a permanent (301) redirect at the registrar. Statpio serves a root domain through www, and the dashboard shows the steps for GoDaddy, Cloudflare, Namecheap and Hostinger.
| Record | Type | Name / Host | Points to |
|---|---|---|---|
| 1 · Website Target | CNAME | offer (or www) | cname.onstatpio.com |
| 2 · SSL Certificate Validation | CNAME | _acme-challenge.offer (or _acme-challenge.www) | The value shown in your dashboard, which looks like offer.clientbrand.com.<id>.dcv.cloudflare.com |
Source: the Custom Domains screen in the Statpio dashboard, October 2026. Copy the exact validation value from your own dashboard.
Three things that trip people up:
- Keep record 2 in place after launch. The certificate renews automatically only while the validation CNAME stays in DNS, as Cloudflare's delegated validation docs explain.
- Delete old
_acme-challengeTXT records for the same name first. The same Cloudflare page warns that existing TXT records there stop this validation from working. - Don't move www by accident. A name can't hold a CNAME alongside other records. If the client's main site already runs on www, pointing www at Statpio moves it. For a campaign page, a subdomain leaves the main site and the client's email untouched.
If the client's IT contact manages DNS, a short message like this usually gets it done:
Hi Sam, please add two CNAME records for offer.clientbrand.com: (1)
offerpointing tocname.onstatpio.com, and (2)_acme-challenge.offerpointing to [validation value from the dashboard]. Please leave both in place after launch; the second one keeps the SSL certificate renewing.
Step 4: How do you capture leads and track visits?
Plan: any. Form submissions per website a month: 250 on Free, 10,000 on Solo Pro and 100,000 on Agency Pro.
Lead capture with a plain HTML form
Statpio captures any standard HTML form that uses method="POST" and has no action attribute. There's no endpoint to configure and no form service to connect:
<form method="POST">
<label>Name <input name="name" required></label>
<label>Email <input type="email" name="email" required></label>
<label>What do you need? <textarea name="message"></textarea></label>
<button type="submit">Request a quote</button>
</form>
- Don't add your own JavaScript submit handler (a
fetch()call withpreventDefault()). It conflicts with Statpio's handler and breaks the CAPTCHA. - Spam protection is automatic. Statpio adds a visible Cloudflare Turnstile check before the submit button and a hidden honeypot field to every form. Don't add a honeypot field of your own (such as
_gotcha): Statpio stores it as a normal field. The Turnstile check can't be switched off. - File uploads work with a normal
<input type="file">. Attachments open from the submissions inbox. - No HTML access? Build one under Forms & Leads → Forms: start from a ready-made form (contact, quote, booking and more), then show it in the Corner button on every page, On a page, or Both. Free Forever has 1 builder form on the site at a time; paid plans up to 50 per website.
Submissions appear in Forms & Leads. To hear about new leads, click Allow notifications when Statpio offers them, or turn them on under Profile & Security → Notifications, so whoever follows up gets a browser notification for each new lead. Each website takes 250 submissions a month on Free Forever, 10,000 on Solo Pro and 100,000 on Agency Pro; past that, up to the same number again is kept, locked until you upgrade.
Analytics is already running
There's nothing to install. Statpio injects a lightweight (about 3 KB compressed) first-party script into every page and counts pageviews, referrers, countries, devices and browsers, and UTM campaigns. Every plan shows visitors, sources, pages, locations and devices; UTM campaigns, goals, funnels and the live visitor view need Solo Pro or Agency Pro. Tag ad and email links with UTM parameters (utm_source, utm_medium, utm_campaign) so the client can see which campaign sends the traffic.
Two caveats before you put numbers in a client report:
- Bounce rate and visit duration are rough guides. A bounce is a visit with a single pageview, and duration runs from a visit's first to its last recorded activity. Report visitors, pageviews, referrers and form submissions first.
- Cookieless doesn't mean consent never applies. The script sets no cookies and uses no third-party trackers or ad networks, but it keeps a visit ID in the browser's
sessionStoragefor the open tab. Rules such as the UK's PECR cover storage on a visitor's device in general, not only cookies (see the ICO's guidance on storage and access technologies). Check with the client whether their jurisdiction requires consent or a notice. Ad pixels or other analytics you add under Settings → Custom Scripts & Analytics may set cookies of their own.
Step 5: How do you hand the page over to the client?
Plan: Agency Pro. Statpio can't transfer a project to a client's own account. Instead, the client logs in to a white-label portal under your agency's brand with a scoped role, and you keep running the hosting. Set up your brand once, then invite each client.
1. Set up your brand and portal address (once)
- Go to Account → Agency Branding.
- Fill in Agency / Company Name, upload your Agency Logo, and set a Client Support Email and a Brand Accent Color.
- Turn on Hide "Powered by Statpio" watermark, so the client footer reads "Managed by" followed by your agency name.
- Choose the portal address: a Default Instant Subdomain such as
youragency.onstatpio.com, or a Custom Portal Domain such asportal.youragency.com. For a custom portal domain, add the CNAME record the page shows and click Check DNS Status. - Click Save Branding & Portal Settings.
Invitations can't be sent until a portal address is set; the Collaborators page prompts you if it's missing.
2. Invite the client with a scoped role
- Open the client's project, click Collaborators in the sidebar, then Invite Collaborator.
- Enter the client's email and select the Client role. It pre-selects the recommended modules; untick any you don't want to share, such as Export Form Leads (CSV).
- Leave Send invitation via email ticked to send an invitation carrying your agency's brand, or untick it and copy the link to share over WhatsApp, Slack or SMS. The link expires after 48 hours; Resend Email sends a fresh one.
Agency Pro includes up to 50 collaborator seats per website, clients and team members together, and pending invitations count toward them. You can change a collaborator's role or modules, or revoke access, at any time.
What the client sees, and what they can't touch
| Role | Can see and use | Can't access |
|---|---|---|
| Client (for the business owner or marketing team) | Project overview, Forms & Leads (inbox, attachments, CSV export), Analytics, Waitlist, Change Requests, Blog (write and publish posts) | Deployments and code, Custom Domains and DNS, SEO Manager, Settings and Integrations, Activity Log, Collaborators, billing |
| Developer (for the client's own developer) | SEO Manager, Activity Log, Analytics, Change Requests, and the Custom Domains and Settings pages (view only) | Deploying or rolling back, adding or removing domains, changing settings, Forms & Leads and Waitlist (unless you add them), Collaborators, billing |
| Admin (for a trusted partner) | Forms & Leads, Analytics, Waitlist, Change Requests, SEO Manager, Activity Log, and the Custom Domains and Settings pages (view only) | Deploying or rolling back, adding or removing domains, changing settings, Collaborators and billing, which stay with you as the account owner |
Source: the Collaborators screen in the Statpio dashboard and what each role can open, October 2026.
The Developer and Admin presets list deployment and domain modules, but for now only you, as the account owner, can upload or roll back a deployment, add or remove a domain, or change settings.
The portal and the invitation email carry your logo, colours, support email and portal address. Clients with Forms & Leads access can turn on browser notifications too, so their team hears about new leads directly.
3. Run a handover check
- The domain shows Active, the page loads over HTTPS, and the root domain forwards to www if you used www.
- Password protection is removed.
- A test submission reached Forms & Leads and arrived as a browser notification.
- The client accepted the invite, can see the test lead and has notifications turned on.
- You and the client have agreed whether the page needs a consent notice.
- The client knows the portal address and knows to use Change Requests for edits.
If the client leaves later: the domain is still theirs, so they can point it at another host. Give them your source files or the build ZIP you deployed, export their leads to CSV, then revoke their access.
How do you handle changes and maintenance after launch?
- Change requests (Agency Pro): the client opens Change Requests, adds a title and a description, and submits. You get a browser notification and a branded email. Move the request through New, In Progress, Waiting for Client and Completed (or Cancelled), and discuss details in its comment thread; the client is notified when you reply or change the status.
- Updates: upload a new ZIP or push to the connected branch.
- Rollbacks: if an update breaks something, open Deployments and click Rollback on an earlier live deployment to restore it instantly. Statpio keeps the last 5 deployments on Free, 20 on Solo Pro and 50 on Agency Pro.
When is a landing-page builder or another host the better choice?
Statpio fits pages you build yourself that need the client's domain, lead capture and a branded login. It's the wrong tool in two cases:
- The client wants to edit the page themselves. Statpio has no visual page editor; clients ask for edits through change requests. A hosted landing-page builder suits clients who want to change copy and layout on their own.
- The page needs server code. Statpio has no server-side rendering, database or backend. If the page depends on API routes or server rendering, use a host that runs server code, such as Vercel.
To compare agency hosting options side by side, see ways to host and white-label websites for agency clients.
You can try steps 1, 2 and 4 on the free plan to check the deploy and form flow: create a free Statpio account. When you're ready to connect the client's domain and invite them, compare Solo Pro and Agency Pro on the pricing page.
Frequently asked questions
Can I host a client's landing page on Statpio's free plan?
Yes, on a free *.onstatpio.com address with SSL. Free Forever includes 1 project, ZIP upload, password protection, form capture (250 submissions per website a month) and basic analytics, and it shows a Statpio badge on the page. It has no custom domains and no GitHub deploys, so putting the page on the client's own domain needs Solo Pro ($9/mo) or Agency Pro.
Which DNS records does a client's domain need?
Two CNAME records: the host (for example www or offer) pointing to cname.onstatpio.com, and _acme-challenge for the same host pointing to the validation value shown in the Custom Domains screen. SSL is issued automatically once the validation record is found; keep both records in place so the certificate keeps renewing. A root domain such as clientbrand.com is served through www, so forward the root to www at the registrar.
Can I transfer the site to the client's own Statpio account?
No. Statpio has no project ownership transfer. On Agency Pro you invite the client as a collaborator with the Client role, so they log in to your white-label portal and see their leads and analytics. If they move on, the domain stays theirs: give them your source files or the build ZIP and remove their access.
Do I need a cookie banner on a client landing page hosted on Statpio?
Statpio can't answer that for you. Its analytics sets no cookies and uses no third-party trackers, but it keeps a visit ID in sessionStorage, and rules such as the UK's PECR can apply to that kind of storage. Check with the client whether their jurisdiction requires consent or a notice, especially if you add other scripts or ad pixels.
How do I and the client hear about new leads?
New submissions appear in Forms & Leads and arrive as browser notifications on each computer or phone where notifications are turned on. Clients with access to Forms & Leads can turn them on too.
What can a client change in the white-label portal?
With the Client role they can view and export leads, open attachments, see analytics and waitlist signups, write and publish blog posts, and submit change requests. They can't touch code, deployments, DNS, settings or billing. The portal, collaborator seats (up to 50 per website) and change requests need Agency Pro.
Keep reading
