Introduction
I wanted to make a website so that I could market myself and share my expertise. This required the website to be fast to load and search engine friendly. Another constraint I had was that I did not want an over-engineered solution that is costly to maintain and deploy. The website needed to be built as fast as possible in technologies I was already familiar with. With all this in mind, it was established that I need a static website.
Possible Tech Stacks and What I Chose
I could have made the website quickly in WordPress. It would have been easy to setup and I could have easily leveraged a large ecosystem of plugins to enhance my website's functionality. I decided against WordPress because it still requires a backend, and I lose out on the ability to customize with native web technologies without going through a lot of hoops. Secondly, it introduces dependencies on third parties which requires constant upkeep.
React / Next.js / Tailwind would have been overkill for this simple use case. So would have introducing a backend framework such as Django / Laravel just used to use the templating engine.
My Solution
I chose to make use of the fundamentals, utilizing as many modern HTML/CSS features as I could to reduce my dependency on JavaScript. To avoid duplication of code, I used Jinja2 templates. I wrote a Python script that generates my pages, adding in images, canonicals, and meta descriptions where needed. The blogs are stored in markdown, and code is organized into templates.
I used JavaScript for the search functionality and one external library mini-search.js which itself does not have any external dependencies. I vendorized this dependency, meaning I serve it along with all the other assets of my website.
Transform Your Business Today
Ready to turn challenges into competitive advantages? Let's create solutions that drive real results for your business.

Tech Stack Summary
- HTML
- CSS
- Python (Jinja2)
- JavaScript (mini-search.js)
Hosting
For hosting I used GitHub Pages. I just push my build code into the root directory of my repository and it is ready to be served. GitHub takes care of the HTTPS certificates and load balancing.