I had been a Jekyll fan for the longest time. However, reading & writing good Ruby was not possible on account of it not being my first language. I felt limited. Before Jekyll, I had been on Middleman, another Ruby-based static site generator.
Resources that helped me make this move:
- Paul's personal website is built on an excellent directory structure, whom I discovered through a blog post on 24ways.
- Duncan has a straightforward guide to setting up a sitemap.xml.
While there are existing solutions for getting a Table of Contents in Eleventy, I'm not convinced by them. See Eleventy's plugins page - every solution requires modifying the markdown content itself.
Along with Eleventy, I use a custom asset pipeline based on gulp for:
- minifying and making my images responsive, and,
- for a few smaller tasks such as managing fonts.
I score about a ~99 on PageSpeed insights for Mobile and a ~99 for Desktop. You may also see my Lighthouse scores for a more comprehensive assessment. While these numbers do change, they stay within the 95-100 bracket — and that's good enough for me. 😉
My move to Eleventy was gradual and iterative, as was the design process throughout this time, and beyond.
Some resources that have helped me:
- The official TailwindCSS documentation.
- Abdelrahman Awad has detailed a very TailwindCSS-compliant method for implementing dark-mode.
- For the sloped design, Kilian Valkhof has a good article.
- Karen Menezes for understanding
- Karen Menezes for understanding
Work on performance and ensuring longevity continues — I'm in the process of removing TailwindCSS entirely and relying on vanilla CSS with upcoming standards, inlining critical CSS, and switching to a lighter font.
For nicer-looking emojis, I use Twitter's open-source Twemoji library.
What had been absolutely essential to me was not to opt for a server-based CMS such as WordPress — while US$5/month sounds very appealing, this adds up across services and over time.
I will admit I've recently been considering opting for a flexible and lightweight CMS such as Grav — though documenting what such a moving process entails has far from begun, so I may as well be here for a significant time to come. Time is better spent on other side projects.
I use Vercel and love it. It has better limits than Netlify on its free tier with much the same workflow. Branch deploys in general are a wonderful way of working with sites as a preview is quickly up without any changes on the production site. 10/10, will use it again. 😅
For several months now, I have delayed making my blogroll automatic. One of the argument levelled at blogrolls is that they are tedious to maintain. I agree, and wanted to take some effort out of this process.
This is a relatively straightforward Node.js script that makes use of:
node-fetchwith token-based authentication to Miniflux' API, and,
- the core
fsmodule to cache data.
I sprinkle in some additional herbs:
A key difference is that I have my script mark some feeds as
recommendedbased on their feed IDs from my Miniflux reader. Then, these feeds are shown first as “Recommended Feeds,” followed by all the other feeds in a separate list.
I took this approach because listing 70 feeds does not help a visitor make a judgment on which feeds I really enjoy and which ones I read when I can. Over time, some feeds can languish in my blogroll even though I have stopped reading them; recommending a select few protects me from this kind of rust setting in too quickly.