Tech Stack
The core of this site is a carefully selected stack of technologies chosen for their efficiency and developer-friendly workflows.
-
Hugo: The site is built using Hugo, an incredibly fast static site generator written in Go. I chose Hugo for its build speed, powerful templating, and straightforward Markdown-based content management. It allows me to write content without worrying about databases or complex backends. I can update .md files easily on any device on any network without having to worry about creating new components.
-
SCSS & Custom Theming: The visual theme is a heavily customized version of the
re-terminaltheme. I’ve written custom SCSS to implement features like the project cards, media galleries, and the personal color scheme. This gives the site a unique look and feel while maintaining a structured and maintainable stylesheet. -
Data-Driven Content (Go Templates & JSON): One of the most interesting features is the media gallery section. Instead of hardcoding my movie, book, and music lists, I use Hugo’s data templates. The site automatically reads from JSON files (like
film-prod.jsonandmusic-favorites.json) and generates the galleries at build time. This makes updating my favorites as simple as downloading the data my IMdb account with my python script and add posters using OMDbs database. Similar process is done using Spotify Developer API and Goodreads data. Eventually I would like to have my own UI interface to directly interact with my all jsons in one place and stop depending on these services. -
JavaScript: Vanilla JavaScript is used to add interactivity where needed, such as powering the scroll buttons, the “expand” functionality on the media galleries, and the lightbox for viewing posters.
-
Deployment & Hosting: The site is deployed on Cloudflare Pages. Every
git pushto the main branch on GitHub automatically triggers a new build and deployment. Cloudflare’s edge network then distributes the static site globally, making it incredibly fast and resilient for visitors everywhere.
Project Goals
- Performance: Achieve near-perfect Lighthouse scores by serving a lightweight, static site.
- Maintainability: Use a simple, file-based CMS (Markdown + JSON) that is easy to update and version control with Git.
- Automation: Implement a CI/CD pipeline using GitHub Actions and Cloudflare Pages for seamless, automated deployments.
- Personalization: Create a unique design that reflects my personal style and technical skills.