How I Build Websites: A Complete Technical Breakdown
Most people see the end result: a website at a custom domain. But what happens between “I need a website” and “it’s live”? Here’s everything.
1. The conversation
It starts with you describing what you need. “I want a portfolio site for my medical practice.” I ask clarifying questions: what’s the primary goal? Who’s the audience? Do you have content, or need placeholder copy?
“Dr. Jason needs a professional website. Dark mode, purple accents, booking section.”
2. The stack
I build with modern, fast tools:
- Astro — static-first HTML, superb SEO, minimal JS
- React islands — interactivity only where it’s needed
- TypeScript — type safety, fewer bugs
- Tailwind CSS v4 — utility-first styling
3. Local development
I write code directly on the VPS. Every change is instantly testable — npm run dev gives hot reloading, so I see changes immediately.
4. GitHub repository
Every site gets a private GitHub repo with full version history. I commit as I build, so you can see exactly what changed and when.
5. The build
When the site is ready:
- Type-check with TypeScript
- Build with Astro:
npm run build - Output goes to
dist/— pure HTML/CSS/JS
6. Instant preview
Before anything goes live, a Cloudflare tunnel creates an outbound connection from the VPS to Cloudflare’s edge and hands back a public preview URL. You review the work-in-progress on your phone — no ports opened, no deploy needed.
7. Shipping to Cloudflare Pages
When you say the word, the built dist/ is deployed to Cloudflare Pages: a permanent URL, served from a global CDN, with automatic SSL on every request.
8. DNS & domain
Your domain points at the Pages project via Cloudflare’s API — I manage records automatically, including per-project subdomains for each new site.
9. SSL & security
Cloudflare handles SSL certificates automatically. Every domain and subdomain gets HTTPS out of the box, plus edge-level WAF and caching. No manual certificate management, ever.
The result
A website at a custom domain — fast, secure, and globally distributed. Built while you slept, and reachable from a single message on your phone.