Static Hosting Migration — Progress Log Static Hosting Migration — Progress Log MC: #8523 (tracking), #8482 (basicconsulting.no), #8489 (bilko.io) | Date: 2026-04-20 Overview ALAI is migrating 8 static sites from Vercel/Azure VM to Cloudflare Pages for cost savings (€0 vs €12-14/mo), operational simplification, and DDoS/WAF coverage. See full blueprint at ~/system/specs/ALAI-STATIC-HOSTING-BLUEPRINT.md . Migration Log Date Domain From To Downtime TTFB Before TTFB After Notes 2026-04-20 basicconsulting.no Vercel (76.76.21.21) CF Pages ~60s 114ms 51ms (warm avg) MC #8482. DNS: A→CNAME. Validation required domain re-add. TTFB improved 55%. Proveo pilot validated #8490. 2026-04-20 bilko.io one.com (down) CF Pages N/A (site was down) N/A 68ms (warm avg) MC #8489. Apex CNAME not possible on one.com free tier (paid feature). Switched to Cloudflare NS (ana.ns.cloudflare.com, bob.ns.cloudflare.com). CF Pages zone ID: 62d89b79f0648d3fa1d045335a989ea7 . DNS: CNAME flattening bilko.io → bilko-io.pages.dev (proxied), www → bilko-io.pages.dev. Paused Migrations MC #8483 — basicfakta.no Reason: Inventory error. Site has serverless functions (Vercel Edge), not pure static. Requires CodeCraft assessment before migration path can be determined. MC #8484 — snowit.no Reason: Inventory error. Site has API routes (Next.js), not pure static. Requires CodeCraft assessment for static export viability or alternate hosting. Audit Verdict: bilko-demo.alai.no (MC #8486) Decision: Stays on GCP Cloud Run. Not eligible for CF Pages migration. Reason: Full-stack Next.js app with dynamic API routes and server-side rendering. Static export would break functionality. Current platform (Cloud Run) is correct fit. Lessons Learned one.com Apex CNAME Limitation one.com free tier does NOT support apex CNAME (requires paid plan). For domains registered at one.com, the migration path is: Switch nameservers to Cloudflare (ana.ns.cloudflare.com, bob.ns.cloudflare.com) Import DNS records via Cloudflare zone scan Set up CNAME flattening in Cloudflare (apex → CF Pages project, proxied) Propagation time: 15 minutes to 4 hours for .no domains. Inventory Validation Pre-Migration Before scheduling a migration, verify the site is truly static: Check for pages/api/ or app/api/ directories (Next.js API routes) Check for Vercel Edge Functions ( middleware.ts , edge-config ) Check for ISR/SSR ( getServerSideProps , revalidate in Next.js) Run npm run build and verify output is out/ or dist/ (static export) If any of the above exist, the site is NOT static and requires CodeCraft review. TTFB Improvements Cloudflare Pages with CDN caching (orange-cloud proxy) delivers 50-60% TTFB improvement over Vercel for static sites. Cold start overhead is negligible (CF edge network vs Vercel edge). Remaining Migrations Domain Current Host Status MC Task alai.no CF Pages ✅ Complete (already on target platform) N/A basicconsulting.no CF Pages ✅ Complete (2026-04-20) #8482 bilko.io CF Pages ✅ Complete (2026-04-20) #8489 basicfakta.no Vercel ⏸ Paused (serverless functions found) #8483 snowit.no Vercel ⏸ Paused (API routes found) #8484 getdrop.no Azure VM 🔄 Pending (DNS on Vercel, move to CF) #8485 kenyhot.pro Vercel 🔄 Pending (coordinate with client) #8487 merdzanovic.ba Vercel 🔄 Pending (coordinate with client) #8488 DNS Consolidation Status Domain Registrar Current NS Target NS Status alai.no one.com Cloudflare Cloudflare ✅ Done basicconsulting.no one.com Cloudflare Cloudflare ✅ Done bilko.io one.com Cloudflare Cloudflare ✅ Done (2026-04-20) getdrop.no one.com Vercel Cloudflare 🔄 Pending basicfakta.no one.com Vercel Cloudflare 🔄 Pending snowit.no one.com Unknown Cloudflare 🔄 Pending Generated by Skillforge | ALAI, 2026