You're reading this on a website that costs about $3 per month to run, loads in under a second, and can handle thousands of visitors without breaking a sweat. No WordPress, no complicated frameworks, no server to maintain. Just pure HTML, CSS, and JavaScript served through a professional deployment pipeline that would make enterprise developers jealous.

Did I need a website? Not really but I wanted one and I decided it would be a great way to learn a few new things and strengthen my understanding of others.

Let me show you how it works.

The Philosophy: Keep It Simple

I've worked with complex infrastructures for years—including managing one of the largest Exchange-based email systems in the world. I've seen firsthand how complexity breeds problems. For my personal website, I wanted something different: blazing fast performance, minimal maintenance, and complete control over every byte sent to your browser.

The answer? Go back to basics. Vanilla HTML, CSS, and JavaScript. No build steps, no npm packages with 500 dependencies, no framework overhead. Just clean, semantic HTML styled with modern CSS and enhanced with a few lines of JavaScript.

The Tech Stack

Frontend: Vanilla Everything

The entire site is built with:

  • HTML5: Semantic markup with proper accessibility
  • CSS3: Modern CSS with Grid, Flexbox, custom properties, and animations
  • Vanilla JavaScript: No jQuery, no React—just native DOM APIs

Why vanilla? Because modern browsers are incredibly capable. CSS Grid and Flexbox handle layouts beautifully. CSS custom properties (variables) make theming a breeze. The Intersection Observer API handles scroll animations. And native JavaScript is fast, small, and does everything I need.

The entire JavaScript for the site is about 200 lines. No frameworks. No build tools. It just works.

Design System

I use a pink color theme defined in CSS custom properties, making it trivial to change colors site-wide. The responsive design uses a mobile-first approach with CSS media queries. Every page works perfectly on phones, tablets, and desktops.

The Infrastructure: AWS Done Right

Here's where it gets interesting. I run two complete environments—development and production—using AWS services that cost next to nothing.

Storage: Amazon S3

All my HTML, CSS, JavaScript, and images live in Amazon S3 buckets configured for static website hosting:

  • Production bucket: newsum-me-website (hosts newsum.io)
  • Dev bucket: newsum-io-dev (hosts dev.newsum.io)

S3 is incredibly cheap—about $0.023 per GB per month. My entire site (HTML, CSS, images) is under 5MB, so storage costs are negligible.

Content Delivery: Amazon CloudFront

CloudFront is Amazon's CDN (Content Delivery Network). Instead of serving files directly from S3 in Oregon, CloudFront caches my site across 450+ edge locations worldwide. When someone in Tokyo visits my site, they get it from a server in Tokyo, not Oregon. This makes the site insanely fast globally.

Each environment has its own CloudFront distribution:

  • Production CloudFront: Serves newsum.io and www.newsum.io
  • Dev CloudFront: Serves dev.newsum.io

CloudFront pricing is generous—the first 1TB of data transfer per month is free, plus 10 million HTTP requests. I'm nowhere near those limits.

DNS: Amazon Route 53

Route 53 manages my domain names and routes traffic to CloudFront. I own newsum.io through Route 53's registrar, and the DNS hosted zone handles all the routing magic.

SSL/TLS Certificates

Security is non-negotiable. I use AWS Certificate Manager (ACM) for free SSL certificates that cover:

  • newsum.io
  • *.newsum.io (wildcard—covers dev.newsum.io, www.newsum.io, etc.)
  • newsum.me (legacy domain)

ACM certificates auto-renew, so I never worry about expiration. Everything runs on HTTPS with modern TLS 1.2+.

The Deployment Pipeline: Git-Based CI/CD

This is where it gets really cool. I have a professional development workflow that automatically deploys my site whenever I push code to GitHub.

Branch Strategy

I use two Git branches:

  • dev branch: For development and testing
  • main branch: For production (the live site)

Automated Deployments with GitHub Actions

GitHub Actions watches my repository and automatically deploys changes:

Development workflow:

  1. I push code to the dev branch
  2. GitHub Actions triggers automatically
  3. Files sync to the dev S3 bucket
  4. CloudFront cache invalidates
  5. Changes appear at dev.newsum.io in about 2 minutes

Production workflow:

  1. I test everything on dev.newsum.io
  2. When satisfied, I merge dev into main
  3. GitHub Actions deploys to production automatically
  4. Changes go live at newsum.io

This is the same CI/CD approach used by major companies. I can deploy a blog post or bug fix in seconds, and I know it's been tested on the dev environment first.

The Workflow Files

Two simple YAML files define the entire deployment pipeline:

  • deploy-dev.yml: Syncs dev branch to dev.newsum.io
  • deploy.yml: Syncs main branch to newsum.io

Each workflow runs in under 30 seconds. No waiting, no manual FTP uploads, no server SSH access needed.

Why This Architecture?

Performance

Static sites are the fastest websites you can build. No server-side rendering, no database queries, no API calls on page load. Just HTML, CSS, and JavaScript served from a CDN. Time to first byte? Under 100ms globally.

Reliability

S3 has 99.999999999% (11 nines) durability. CloudFront is massively redundant. There's no server to crash, no database to corrupt. The site is always up.

Security

No backend means no backend vulnerabilities. No PHP injection, no SQL injection, no server exploits. The attack surface is minimal. Everything runs over HTTPS. DDoS protection is built into CloudFront.

Cost

Here's my monthly AWS bill breakdown:

  • S3 storage: ~$0.12 (5MB at $0.023/GB)
  • CloudFront: ~$1.50 (well within free tier, but minimum charge)
  • Route 53: $0.50 per hosted zone
  • Lambda: $0.00 (1M requests/month free, I use ~100)
  • API Gateway: $0.00 (1M requests/month free)
  • SES: $0.00 (62,000 emails/month free from EC2/Lambda)
  • Total: ~$2-3 per month

Compare that to managed WordPress hosting at $20-50/month (plus Formspree at $10/month for forms), or a VPS at $10-20/month. I'm getting enterprise-grade performance, reliability, and serverless contact forms for pocket change.

Maintainability

No servers to patch. No WordPress plugins to update. No framework versions to upgrade. No security vulnerabilities in dependencies. I can leave this site untouched for a year and it'll still work perfectly.

The Development Experience

Local development is beautifully simple:

  1. Clone the repo
  2. Run python3 -m http.server 8000
  3. Open localhost:8000 in a browser
  4. Edit files and refresh

No npm install, no build process, no webpack configuration. Just edit and refresh.

What About Dynamic Features?

You might ask: "How do you handle forms, comments, or user accounts without a backend?"

Contact Form: AWS Lambda + SES

My contact form is powered entirely by AWS serverless infrastructure—no third-party services like Formspree needed. Here's how it works:

  • Frontend: JavaScript handles form submission via fetch() API
  • API Gateway: HTTP API endpoint receives form data with CORS enabled
  • AWS Lambda: Node.js function validates input and formats email
  • Amazon SES: Sends beautifully formatted HTML emails to my inbox

The Lambda function costs essentially nothing (AWS Free Tier covers millions of requests per month), runs in milliseconds, and I have complete control over the email formatting and validation logic. No monthly fees, no external dependencies, and it scales automatically from 0 to thousands of form submissions.

Other Dynamic Features

For analytics, I use Google Analytics 4 with a privacy-focused cookie consent banner. For my TeslaMate dashboard, I embed a Grafana snapshot running on a separate EC2 instance.

The key insight: not every website needs a traditional backend. Most content sites—blogs, portfolios, landing pages—work perfectly as static sites with selective use of serverless functions for specific dynamic features.

Lessons Learned

1. Simple is Fast

My homepage loads in under a second on 3G. That's faster than 95% of websites. Why? Because there's nothing to slow it down. No framework overhead, no render-blocking JavaScript, just progressive HTML/CSS/JS.

2. Infrastructure as Code Matters

Everything about my infrastructure is documented in code—the GitHub Actions workflows, the S3 bucket policies, the CloudFront configurations. I can rebuild the entire setup from scratch in 30 minutes.

3. Dev/Prod Parity is Valuable

Having a proper dev environment lets me test fearlessly. I've caught broken links, CSS bugs, and JavaScript errors on dev.newsum.io before they hit production. It's worth the extra $1/month.

4. Modern CSS is Powerful

CSS Grid, Flexbox, custom properties, and media queries handle 90% of what people use JavaScript frameworks for. Responsive layouts? CSS Grid. Theming? Custom properties. Animations? CSS transitions and the Intersection Observer API.

5. Git is the Perfect CMS

My "CMS" is a text editor and Git. Want to publish a blog post? Write HTML, commit, push. GitHub Actions handles the rest. It's faster than logging into WordPress, and I have infinite version history.

The Future

I'm considering adding:

  • Image optimization: Auto-convert images to WebP and generate responsive srcsets
  • Build-time optimization: Minify HTML/CSS/JS before deployment
  • RSS feed: Generate an RSS feed for blog posts
  • Search: Client-side search with a pre-built index

But honestly? The site works great as-is. Sometimes the best feature is the one you don't add.

Open Source

I am considering sharing the entire website on GitHub as an open source project. If you're interested in seeing the full codebase, infrastructure setup, and deployment workflows, let me know by reaching out.

Final Thoughts

You don't need a complex framework to build a professional website. You don't need expensive hosting. You don't need to sacrifice performance for features.

With modern HTML, CSS, and JavaScript, plus cloud infrastructure that's both powerful and affordable, you can build something fast, reliable, and maintainable. And you can deploy it with the same professional CI/CD pipelines that enterprise companies use.

The web is better when it's fast. And sometimes, the fastest approach is also the simplest.


Have questions about the setup? Want to know more about a specific part? Feel free to reach out—I'm happy to help!