ADR 01: Static hosting on Vercel
Why client sites are static exports on Vercel's free tier.
Status: adopted (2026-07-13)
Context
The agency pays Webflow hosting per site across roughly 30 sites, mostly for content that rarely changes. Webflow cannot be downgraded when a site uses its CMS.
Decision
Clone each Webflow site to a static export, store it in its own GitHub repo, host on Vercel’s free tier, one project per site. Team “withunify” (id team_CBuHDq1f14PhRXka9dkQHZs2).
Consequences
- Marginal hosting cost per site is zero. Global CDN, SSL, and previews come free.
- Sites keep working exactly as designed; we strip Webflow badges and SRI hashes during cloning.
- Webflow-hosted forms still POST to Webflow until the forms module replaces them, so Webflow projects must not be deleted yet.
- Editing requires our own tooling, which became the CMS (ADR 02, ADR 04).
Cloning gotchas (encoded in porter/clone.py)
- SRI integrity hashes must be stripped after CSS rewriting or pages render blank.
- The Webflow badge is removed via data-wf-domain and data-wf-status attributes.
- CDN filenames contain spaces, parentheses, and double-encoded characters; decode fully.
- Staging sitemap.xml returns 404, so the crawler follows internal links instead.