Prateek Sappadla

Crafting My Website: Jekyll, Docker, and AWS Chronicles

December 29, 2023 | 3 Minute Read

In the summer of 2019, I embarked on the journey of creating my personal website, driven by the need for a platform to showcase my work and provide insights into who I am. At that time, Jekyll emerged as the go-to solution, no-frills, fast, and exactly what I needed for setting up a functional website. Fast forward to the end of 2023, as I dust off the virtual cobwebs, the “if it ain’t broke, don’t fix it” maxim keeps me loyal to Jekyll. Let’s take a stroll through the tech that powers my website and how I made it all happen.

My website primarily serves as both a blog and a landing page for individuals interested in learning more about my work and connecting with me. With a focus on static content, Jekyll’s Long Haul theme stood out as the perfect fit. Jekyll, a Ruby-based framework, seamlessly converts markdown files, enriched with front matter headers, into tidy static HTML pages. This approach not only simplifies content creation but also ensures a clean and efficient website structure.

To keep my live site drama-free and streamline development and testing, I use Docker along with the jekyll/jekyll image to run a local setup of my website. This local setup lets me play around with new ideas before the curtain goes up on the web. No rehearsals on the main stage!

When it came to hosting my site, I used AWS as the platform. Leveraging S3 buckets as the hosting mechanism, I entrusted AWS with my domain name, TLS certificate, DNS, and CDN. The TLS certificate plays a key role in ensuring a secure browsing experience for visitors, instilling a sense of confidence when exploring my website. Additionally, the CDN facilitates local caching, ensuring a swift and efficient delivery of the site’s content. Together, these elements form a comprehensive solution that not only prioritizes security but also lays the groundwork for a robust and scalable foundation for my website.

So, why AWS, you ask? Well, back in the day when I first set up shop online, before donning the Microsoft hat for my day job at Azure, AWS was my go-to, and it worked like a charm. As I said before, “If it works, I aint fixing it” and I stuck with AWS. Having a foot in both the AWS and Microsoft camps is a bit like being a Marvel character in a DC universe – a delightful twist to my tech tale. If any of my Microsoft buddies ask, it’s all in the name of “competitive analysis.” 😛

Let’s talk laziness – but in a good way! GitHub Actions takes the grunt work out of updates. A simple push on GitHub, and boom – a new build goes live on AWS. My site gets a fresh coat of paint without breaking a sweat.

Spying on my visitors? Guilty as charged. Google Analytics joined the stack to help me see what’s cooking – page views, user insights, the whole nine yards. It’s like having a little spyglass into what’s happening behind the scenes. Sneaky, but oh-so-helpful.

In a nutshell, this website rides the Jekyll wave, throwing in a bit of Docker, and letting AWS and GitHub Actions do their thing Google Analytics adds that extra layer of insight. For anyone out there thinking of diving into the website-building adventure, the resources I used are like a treasure map in this digital jungle. Here’s to keeping it simple and having some fun along the way!

References

  1. https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html
  2. https://www.patrickmcdavid.com/publishingjekylltos3withgithubactions/
  3. https://ddewaele.github.io/running-jekyll-in-docker/
  4. https://pagertree.com/blog/jekyll-site-to-aws-s3-using-github-actions
  5. https://katanacode.com/blog/host-jekyll-site-on-aws-s3-circle-ci-deploys/