I Changed My Personal Site & Blog Again
Update: The blog has changed again to an even simpler setup using Astro
Over the years, I have gone through many (at least 5) iterations of my personal website and blog. I have tried both open source static site generators and paid SaaS solutions. Ultimately, many of those solutions were lacking one feature or another that I was looking for.
During this time, I was experimenting with what worked for me from a few different aspects:
- Flows for updating and writing new content
- Performance
- Minimal bloat
- Customizability
- Familiarity with the language in-use (if not SaaS)
- Offline capabilities
- Privacy
- Code syntax highlighting support
- SEO (yes, I do want my posts to be found & indexed)
What I had
Static Pages - Squarespace
Blog - Medium
Analytics - Squarespace
Content Editor - Squarespace
I found this to be really easy to get started with. Squarespace does a pretty good job of making the user experience easy enough to work with to be able to get an entire site with content going within a day. The cost for having this was a bit higher than what I would normally pay, although I was okay with justifying this cost for my own personal brand and use. The editor was sometimes slow which started to bother me.
Squarespace lacked a decent way to add code blocks to blog posts so I decided to stick to Medium for that aspect since I had been using Medium since late 2015. The editor was fairly comfortable for me and the code support was decent although not amazing. Medium was pretty good for getting traffic quickly to my posts as well which was nice to have given the use of the platform.
I found that my motiviation for writing had started to diminish since I was craving to write in markdown instead of a GUI editor. I’ve been writing code for over 10 years now and that’s my comfort zone for writing content. I would prefer to use markdown instead of an editor + GitHub gists in order to get proper code syntax for some languages.
When using both Medium and Squarespace, it came with two fairly large downsides. For one, it was not privacy focused. There are many trackers that get enabled for both sites in order to get analytics and it’s cookie based. The other being that offline support wasn’t available. I like to write posts even when I’m out and about at a place that may not have WiFi available.
The New Setup
I ended up stumbling onto Nextra which had a built-in blog theme that I found to be very easy to work with. This came with an added benefit of a minimal design that I appreciated.
Static Pages - Nextra
Blog - Nextra
Analytics - Fathom Analytics which is privacy focused
Content Editor - NeoVim ❤️ + Markdown using MDX
I’ve been using this stack for about 4 months now and am really happy with it. I found that it’s worth paying for an analytics tool like Fathom to focus on privacy and keep trackers to a minimum.
Nextra is built on top of Next.js. I started my career to using JavaScript and continue to use it at work which is comfortable. This made it simple to make customizations and utilize the large set of libraries that are available for JS and Next.js specifically. I customized it a bit to include a sitemap and small SEO-related optimizations that only took a couple of hours to change.
Since I can run this locally, this made it simple to be able to write and modify content on the go offline. I actually wrote this blog post offline while I was on the go 🙂 (adding in links later).
NeoVim is my editor of choice for work and now I use it to write content for my personal site and blog in markdown. To me, that’s the best of both worlds. I’ve been actively using Vim for 9 years.
Overall, I am extremely happy with this new setup and found myself to be more productive in it as well.