This website, rebuilt on my own account
I moved this site off a website builder onto my own account, the same pattern I use for clients.
What changed
Why move
Practice what I sell
Clients' systems run in accounts they own, and mine should too.
Speed and control
Pages are plain HTML at the edge, with no builder scripts and no tracking cookies.
Keep what works
Old links still land on the right page. Password-protected client portals stay where they were.
Risk-free switch
The old site was backed up and left running, so going back is one DNS change.
What it costs
A few cents a month at this traffic, plus the domain. No website-builder subscription is needed for the public site.
How it fits together
The simplest serious setup: a private bucket behind a CDN, with a small function at the edge to handle addresses.
Colors follow AWS service categories; grey is outside the account; dashed lines are background paths. Swipe the diagram sideways.
Step by step
- Visitors and search engines reach CloudFront over HTTP/2 or HTTP/3, with security headers on every response.
- A router function at the edge sends the bare domain to www, turns clean addresses into files, and forwards old addresses to their new pages.
- Pages are served from a private, versioned S3 bucket.
- Client-portal addresses are handed to the old site, where their password protection still works.
Technical details
For your IT person: components, trade-offs and security. Open any section.
Components
| Layer | Service | What it does here |
|---|---|---|
| Build | Python generator | Renders every page from one template with its own title, description, canonical and social tags, and structured data. It writes the sitemap and robots file, and produces WebP images alongside the JPEGs. |
| Edge | CloudFront + CloudFront Function | HTTP/3, compression, strict content-security policy and HSTS. The router function handles redirects without a round trip to the origin. |
| Origin | S3 (private, versioned) | Readable only through CloudFront (origin access control). Pages are never cached stale; images cache for a week. |
| Certificate | ACM | Covers the bare domain and www. DNS-validated in Cloudflare. |
| Delivery | CloudFormation + deploy script | One template. The script refuses to run against any client account, syncs the files and clears the cache. |
| Quality | Playwright | Loads every page at desktop and phone widths and fails on errors, broken links or horizontal overflow. |
Design decisions and trade-offs
Want something like this?
Tell me how the work moves today. I'll tell you what I'd build and what it would cost.
