Welcome to my personal blog. I take this opportunity and space to thank all the open source projects that help me build this JAMStack website.
This blog is made with Ghost and is hosted at a secret location — some url where I do not want to receive traffic. The Ghost engine is running at Amazon Lightsail in the bare minimum plan.
Since I use a bare minimum plan, ghost and mysql cannot run well on that small machine. So, when configuring ghost, use a sqlite3 database.
Eleventy is a static site generator. This blog is a static site where the content of the blog is fetched from the above Ghost droplet running at a secret location.
I used this starter kit to bootstrap all of the ghost related logic to fetch content and build different pages and posts.
The theme of this blog is a fork of this Ghost's theme - London. I forked some parts of the London theme, fit it to the eleventy-ghost-starter and tweaked a few other things.
Cloudinary is a CDN offers a free tier which is good enough for a personal blog to get better performance. This project was straight forward to add to my hosted Ghost droplet and configure it to use my free Cloudinary account.
It parses the HTML after eleventy build and transforms all
<img> tags src to
data-src so it can be lazy loaded for performance. It takes care of progressively enhancing by detecting native lazy loading and uses lazysizes for older browsers.
I forked this project because of some customizations of how
srcset was handled. Cloudinary provides a neat way to get different sizes of the same image by a parameter in the URL. So, before I send the HTML to prepare lazyloading of images, I parse it and transform src to srcset by computing different image sizes by manipulating the Cloudinary URL.
Cheerio is the library I use to parse HTML and transform image tags to responsive images. It provides a jQuery like interface to navigate HTML parse tree.
Many many thanks to all these projects and their dependencies.