Why I Migrated My Blog From Next.js to Astro (And Fixed CloudFront S3 403 Errors for Good)
How I replaced Next.js with Astro for my static blog, eliminated CloudFront 403 Access Denied errors on S3 with OAC, and codified the fix in Terraform.
I'm a Cloud & DevOps Architect who builds scalable, secure infrastructure using AWS, Terraform, Kubernetes, and automation pipelines. But this blog isn't a resume—it's a blueprint.
Everything here is deployed with Terraform, served through AWS S3, CloudFront, Route 53, and ACM, and automated via GitHub Actions—all stitched together in Astro. It's not just hosted in the cloud; it's built to reflect how I solve real-world problems.
I write to document strategy, not just story. You'll find battle-tested solutions, breakdowns of infrastructure choices, and patterns that turn complexity into clarity. Whether you're building your stack or scaling your team, these are the insights I wish someone shared with me earlier.
How I replaced Next.js with Astro for my static blog, eliminated CloudFront 403 Access Denied errors on S3 with OAC, and codified the fix in Terraform.
Step-by-step tutorial to install Grafana on an AWS EC2 instance, connect CloudWatch as a data source, and build real-time monitoring dashboards.
Deploy to Amazon EKS using GitHub Actions with OIDC authentication. No static AWS credentials needed. Includes ECR, IAM, and Kubernetes setup.