Prebuilt means the bytes are already HTML
Agencies hand you a zip. A SaaS exports a static site. A contractor says “the website is done” and mails a folder. Your job is hosting, not redevelopment. StaticHost is aimed at that moment: take a prebuilt tree, publish it, attach a domain, keep rollback nearby.
No remote builders will reinterpret the project. If the zip lacks index.html at the right level, the host will not invent one. nginx answers with try_files $uri $uri/ =404. HTTPS preview works immediately after upload; certificates on custom domains arrive after DNS verifies. Trial ~1 day, then Starter $9 / Pro $30 / Scale $65 / Business $130. No forever-free, email, cPanel, or built-in CDN product.
Intake checklist for prebuilt deliveries
- [ ] Unpack the zip locally (do not upload blind).
- [ ] Find the directory that contains the real
index.html(ignore__MACOSXand.DS_Store). - [ ] Open
index.htmlin a browser as a rough check. - [ ] Note absolute paths pointing at the contractor’s machine or
http://. - [ ] Note whether the site is multipage HTML or a history-mode SPA.
- [ ] Measure total size versus plan storage (Starter 2 GB, Pro 10 GB, Scale 30 GB, Business 100 GB).
- [ ] Ask who will rebuild if copy changes—prebuilt can become “nobody knows the source.”
If SPA deep links matter, settle hash vs files before launch—host a single-page application.
Normalize the tree
cd path/to/correct-root
zip -r ../prebuilt-site.zip .
unzip -l ../prebuilt-site.zip | head
Top-level index.html required. Guide: zip a static site without 404.
Fix obvious mixed content and dead asset paths before first deploy when cheap; after DNS cutover they become emergencies—static hosting with free SSL.
Worked example: agency zip with a trap folder
You receive Site_FINAL_v7.zip. Unzipbing reveals:
Site_FINAL_v7/
__MACOSX/
website/
index.html
css/
images/
readme-from-agency.txt
Wrong: zipping Site_FINAL_v7 again. Right:
cd Site_FINAL_v7/website
zip -r ../../client-site.zip .
unzip -l ../../client-site.zip | head
Deploy client-site.zip. Open HTTPS preview. Click primary CTAs, mobile nav, and any form that posts to a third-party endpoint. Roll back if “final_final_v3” is worse than the previous deploy in history.
Publish and domain cutover
Create a StaticHost site. Upload the normalized zip or push files to GitHub for git deploy a static site. When preview matches contract, add the domain, verify DNS, wait for the certificate—static hosting with a custom domain. Keep the contractor’s old host only until TTL expires.
Ownership after handover
Prebuilt sites rot when nobody can regenerate them. Demand source (Figma + export pipeline, or the generator repo). Hosting preserves the last good bytes; it does not recreate lost source. Designers: static hosting for designers. Agencies managing many prebuilts: static hosting for agencies.
When not to accept a “prebuilt” on StaticHost
- The zip is a WordPress tree (
wp-content,wp-config.php) → PHP host; refuse politely. - The zip is only
src/for a React app with no production build → send it back for a properdist//build/. - The site depends on Apache
.htaccessSPA rewrites → will 404 on deep links here. - Nobody can explain how to change a phone number next quarter → fix ownership before cutover.
Failure table (prebuilt intake)
| Symptom | Likely cause | Fix |
|---|---|---|
Preview 404 on / | Nested archive root | Re-zip from the folder that holds index.html |
| Styles missing | Paths like /Users/agency/... | Rewrite to relative URLs; redeploy |
| Form does nothing | Endpoint blocked or HTTP | Update action to HTTPS SaaS endpoint |
| Deep links 404 | History-mode SPA export | Hash routes or prerendered files |
| Storage warning | Giant unoptimized video | Compress or host media elsewhere |
Boundaries
No cPanel file babysitting as the product core, no email, no built-in CDN, no WordPress runtime. If the prebuilt delivery is actually a WP tree, refuse StaticHost and send it to a PHP host. Related: host a personal HTML website when you are rebuilding simply instead of debugging a messy export.
Acceptance test procedure (30 minutes)
Before you tell a client “it is live,” run this against HTTPS preview—not against the zip on your laptop alone:
- Homepage hero, primary CTA, and mobile nav.
- Every footer link; note external vs internal.
- Contact form submit against the third-party endpoint (look for HTTPS and a success state).
- One interior page per main IA branch.
- Favicon and Open Graph image requests in the Network panel.
- Deliberate 404 path to see whether a custom
404.htmlexists (optional) versus a generic miss—remember this is not SPA fallback. - Bandwidth sanity: a single page should not download tens of megabytes of unoptimized video unless contracted.
Log failures in the intake ticket. Fix files, re-zip from the correct root, redeploy. Use deploy history if “FINAL_v7” is worse than the previous artifact. Only then start DNS. Certificate issuance waits on verification; preview TLS already proved the bytes.
Who rebuilds next quarter?
Write the answer in the handoff note: repo URL, build command (even if “none—hand HTML”), who owns copy changes, and which StaticHost plan holds the site (Starter $9 / Pro $30 / Scale $65 / Business $130). Prebuilt without ownership becomes an orphan. Agencies juggling many orphans should read static hosting for agencies. Designers exporting from tools: static hosting for designers.
If the delivery is secretly WordPress, stop. StaticHost will not run PHP. If it is secretly an unbuilt React src/, send it back for a production dist//build/. Strict nginx (try_files $uri $uri/ =404) will not flatter either mistake.
Worked example: mixed-content emergency after DNS
Preview looked perfect on StaticHost’s HTTPS hostname. After cutover to https://client.example, the console fills with mixed-content blocks because the agency hard-coded http://legacy.cdn.example/... for scripts.
- Roll back only if the new tree is worse overall; otherwise keep the tree and patch assets.
- Download the current artifact; replace
http://script/style URLs with HTTPS or self-host the files intojs/andcss/. - Re-zip from the corrected root; redeploy; confirm on the custom domain.
- Update the handoff note so the next edit does not reintroduce hotlinks.
- Remind stakeholders StaticHost has no email product and no built-in CDN product—third-party CDNs you hotlink are your dependency risk.
This is why intake must open index.html and scan for absolute http:// before the marketing blast. Plans stay Starter $9 / Pro $30 / Scale $65 / Business $130 after a ~1 day trial with no forever-free tier.
FAQ
The zip contains both src and dist—what do I upload?
dist (or equivalent output) contents only.
Can I tweak one line of HTML on the server?
Prefer editing locally and redeploying so preview and history stay coherent.
What if fonts are hotlinked to a trial CDN that expires?
Self-host font files in the tree and redeploy.
Is prebuilt the same as “no Git”?
Often yes; zip is enough. Add Git when updates become frequent.
How do I know it’s prebuilt versus needing a build?
If opening index.html plus assets works without npm run build, treat as prebuilt. If only src/ exists, you must build first—or return it to the vendor.