TechEarl
About

A blog twenty years in the making.

It took me eight years of tinkering before I shipped a single post. Here's how TechEarl got from PostNuke to Next.js.

TechEarl Logotechearl.com · since 2014

It's December 2024 as I write this. I started developing this blog back in 2000, driven by a desire to explore technology and showcase my knowledge. At the time, it wasn't about publishing content — it was about experimenting with tools, platforms, and languages. I started with basic HTML pages and gradually worked my way through phpNuke, PostNuke, Mambo, Drupal, WordPress, and Joomla, eventually settling on a mix of Joomla and WordPress.

For about eight years, I kept tinkering — building and rebuilding the site — but while taking breaks in-between and never actually launching anything.

Finally, in 2014, I decided to stop chasing the "perfect" setup and just get something live. That's when the first version of techearl.com went online.

Even after launching, I couldn't resist experimenting. I explored headless setups, tried out different frameworks, and tweaked workflows, but I struggled to find an approach I truly liked. I wrote a lot of content during this time, but most of it stayed in draft mode, never making it to the site.

One of the biggest challenges I faced was keeping my content decoupled from the platform I was using. The structure and formatting of my writing would often get tied to the specific CMS or framework, making it hard to maintain or repurpose.

Eventually, I found a workable solution with Markdown. While it's not perfect — you can't do much in terms of formatting — it gave me a way to separate content from the platform. To push its boundaries, I adopted Markdown eXtended (MDX), which gave me more control over the presentation while keeping the content portable. Now, I can write in a way that feels clean, future-proof, and adaptable to other systems when needed.

Currently, I'm using Next.js. I wanted the flexibility of React to create components and found Next.js to be the best backend to achieve my goals. Naturally, I tried GatsbyJS before settling on Next.js — I loved GatsbyJS, but Next.js fit better for my needs. Using MDX with Next.js, however, came with its own set of challenges. I added ShikiJS for syntax highlighting, which complicated things further. Even now, with Next.js 15 in December 2024, the MDX documentation is practically useless for a setup like mine. But here we are.

The main purpose of this blog is to share my knowledge of software development and DevOps — from my perspective, using the tools I rely on daily. It's also a practical resource for me — a central repository where I can quickly find and copy-paste commands or code snippets. I want to take this a step further, allowing visitors to edit a code block or tweak a parameter and have those changes persist via localStorage if they choose to. For me, this would eliminate the need to sift through countless text files or retype long terminal commands.

This blog is as much for me as it is for anyone else — helping me stay organized and, hopefully, helping others along the way.