How morganvault.com was built solo with AI in 2 weeks
This is the site you're reading. Every technical detail, tool, real cost, and pitfall — fully disclosed. This case study is also a live witness of the workflow the Morgan Vault book teaches.
Two weeks of work. Main tools: Claude Code + Wispr Flow + Cloudflare Pages + GitHub. Recurring monthly cost $25-40 USD (Claude Code subscription included). One person built HTML/CSS/JS, multi-language i18n, SEO/AEO structured data, and the automated deploy pipeline.
The 2-week timeline
Not '80 full-time hours over 2 weeks' — this is real life: ~4-6 hours/day with normal life around it.
Real recurring monthly cost
This isn't a marketing estimate — these are the actual line items on Morgan's credit card:
| Tool | Monthly | Notes |
|---|---|---|
| Claude Code | $20 | Anthropic Pro subscription includes Claude Code |
| Wispr Flow | $15 | Voice input — essential for long prompts |
| Cloudflare Pages | $0 | Free tier is more than enough (500 builds/mo, unlimited bandwidth) |
| GitHub | $0 | Public repo, free |
| Lemon Squeezy | 5% | Transaction fee — only charged on sales |
| Domain | $0.83 | $10/year .com amortized |
| Total fixed monthly | ~$36 | All AI subscriptions, excluding sales fees |
Tech stack
No framework, no build step (except i18n), no dependencies. The entire site is plain HTML/CSS/JS:
- HTML (single master)~3,600 lines, all i18n inside one JS object in the same file
- CSS (inline <style>)~1,300 lines, no Tailwind / Bootstrap, all handwritten
- JavaScript (vanilla)~600 lines, no framework, no React/Vue
- build script (Python stdlib)~350 lines, generates per-language sub-pages + sitemap, zero external packages
- Cloudflare PagesPure static CDN serve, global edge, automatic SSL
- Cloudflare Worker (email)Subscribe form backend, KV-stored emails, ~100 lines
- GitHub Actionsgit push auto-triggers Cloudflare Pages deploy
- deploy.bat (Windows)One-click: bump cache, build i18n, git push, Worker deploy
deploy.bat real snippet:
REM === [0.5/6] Build per-language static HTML pages (SEO/AEO) ===
!PY_CMD! build_i18n.py 2>&1
REM === [1/6] Clean lock files + git status ===
taskkill /F /IM git.exe >nul 2>&1
REM === [3/6] git add + commit + push ===
git add -A
git commit -m "!MSG!"
git push origin main
REM === [6/6] Cloudflare Worker (Wrangler) ===
powershell -File "Website\deploy_cloudflare.ps1" -Mode WorkerOnly
Quantified results
8 pitfalls navigated (each with the actual fix)
Every one of these actually happened while building morganvault.com — not 'theoretically could':
- PowerShell encoding garbageUTF-8 BOM clashing with Big5 codepage. Setting chcp 65001 in Windows Terminal alone doesn’t fix it — edit your PowerShell profile.
- Cloudflare Pages "deploy succeeded" but site unchangedCDN edge cache holds for ~24h. Use a versioned ?v=YYYYMMDD query string to force bust.
- JSON-LD aggregateRating warningProduct schema requires aggregateRating or review; a brand-new book has none — faking it triggers Google’s manipulative-markup flag. Switched to Book schema instead.
- GitHub Actions vs Cloudflare API token confusionTwo different tokens for different jobs: GitHub Actions uses secrets.CLOUDFLARE_API_TOKEN (scope: Pages: Edit); local Wrangler uses env CLOUDFLARE_API_TOKEN (scope: Workers Scripts: Edit).
- RWD 720/900px overlap zoneTwo @media breakpoints — 720 and 900 — created a 720-900 range where absolute positioning fought flex column. Unified all stack rules at 900px.
- CSS @media specificity order trapA later @media (max-width: 900px) should override an earlier 1024px, but cascade didn’t apply — both rules were (0,2,0). Refactored with more specific selectors.
- Tutorial drift — docs vs current UICloudflare's official docs screenshots are years behind the 2026 dashboard. Fix: screenshot the current UI and have Claude map old steps to new buttons.
- Site deployed, now what?The biggest pitfall — assuming 'site live = visitors arrive'. Reality: equal time again for SEO/AEO, subscription collection, traffic funnels. This book's Chapter 5 + 6 cover exactly that.
Want to use the same workflow for your own site?
This case study is the condensed version. The full 200-page hands-on book — including more pitfalls I've personally hit, copy-pasteable scripts, HTML starter templates, AI prompt templates — is in the bundle.
See the e-book bundle — $39.90 →