I’ve been wondering how to celebrate this milestone. Because yeah… today marks exactly 20 years since I hit “publish” on my very first blog post — April 18th, 2005.

That post? Honestly… it was bad. A clumsy “hi”, a confused tone, and zero clue about where I was heading. It was a start.

But hey… here we are. Twenty years later.
Still blogging. Still writing — even if what that means has changed a lot over time. I guess it’s time for a little reflection.

The blog has always been called #!/bin/tom.
Why the shebang? Simple. My mind has always been noisy, like a bash script spitting thoughts. It’s like executing a $ cat /dev/mind > blog.

Before this one, I tried other platforms. Never worked.
I almost didn’t post. Didn’t know what to post. Didn’t have time.
But this one stuck. Somehow.

Just to set context for when 20 years ago was:

  • Microsoft was dominating the world with Windows XP,
  • Linux was becoming more popular and we were lost between distributions,
  • Apple was saying goodbye to Power PC and jumping to Intel.

When I started blogging, MySpace was still cool. Facebook was just “TheFacebook” (limited to Ivy League students), YouTube didn’t exist, and Twitter wasn’t even an idea yet. Blogs were a thing, but barely. No Reddit. No Hacker News. Just Slashdot and whatever gems you could dig up from others personal blogs.

As for myself?
I was 4 years into my dev career. Burning out quietly. Writing code by day, geeking out by night, still chasing love (and failing at it), and thinking open source might just save the world.

Episode One - The Noisy Era (2005 - 2010)

As I mentioned, I had tried blogging before — didn’t last more than two entries. But this time was different.

My friend, Hatem Ben Yakoub, who was living abroad, graciously offered to host a bunch of us open-source geeks on his VM. Back then, having a sub- domain name and a hosting was something out of reach and not easy to acquire. Using foreign currency was very controlled and accessing paid services like hosting was nearly impossible.

And remember, this was Tunisia during the Ben Ali’s dictatorship era.
Freedom of speech and expression wasn’t part of the regime’s ideology. People avoided sharing their opinions for fear of being tracked, jailed, or tortured to death for speaking out against the system.

Navigating through such hidden laws, censorship, secret police, and unknown threats was really as exciting as frightening.

But somehow, we still did it.
Not out of rebellion (at least not for me), but out of curiosity. Passion. A need to share. To build a community around PHP, PostgreSQL, Linux, open source, and the occasional rambling.

At the time, I didn’t care much about politics. Maybe I was scared. Maybe I didn’t want to put others at risk — we all shared the same domain, after all. So I kept it techy. Safe. Neutral.

Somehow, it worked. Surprisingly, it went very well. I can admit that it opened a lot of doors and helped me to meet incredible people.

Then came Houssein Ben-Ameur’s brilliant idea: aggregate all Tunisian blogs into one central feed. It was a lifeline. A digital café where ideas bounced around cautiously but boldly. It was a vibrant but cautious space, shaped by the country’s restrictiveness and the growing desire to find alternative channels for expression and information.
Also helped build an early online community, and set the stage for later activism and digital dissent.

We weren’t just geeks anymore. We were forming a community. Meetups followed and many of those bloggers became thought leaders, influencers, and successful entrepreneurs.

We used Movable Type at the time, It was very suitable to generate static HTML pages for our blogs, which was crucial given the tiny performance of our VM. It was flexible enough to handle all our personal and community blogs and convenient for moderating the comments and versioning the content.
But man, it was somehow clunky, very time-consuming to maintain and painfully slow.

My blog on Movabletype
Earliest image available of my blog on MovableType via Archive.org. Scraped on April 26th, 2005.

And to be honest, my posts were all over the place. Geeky news, movies or books reviews, photography attempts, and some doubtful thoughts, like any young man trying to open up.

But the writing was… terrible. Raw. Impulsive. Typos everywhere.
It was just me, unloading, shouting. No structure. No direction. Slang and existential cacophony.
But it was mine.

Overall, I posted around 330 times in just 5 years and collected a lot of comments and trackbacks. And then… it started to fade.

Episode two - The Dry Era (2010 - 2021)

From 2010 to 2013? Nothing. Not a single post.

Life happened to me.
Career stress. A fiasco relationship turned to divorce. A second burnout. Life was a disaster.
I just couldn’t write.

The silence on the blog mirrored a silence in my mind. Writing wasn’t just absent, I had lost a part of how I processed life.

Meanwhile, social networks exploded. People weren’t reading blogs anymore. They moved to Facebook and Twitter, they were scrolling, liking, and ghosting.
Personal sites lost their audience as people wanted just to consume quickly and move on.

In 2013, I tried to come back. As therapy, to structure my thoughts, and share my findings and opinions more consistently.

I ended up getting my own VM, registering a domain, and switching to WordPress. It felt like a fresh start.
I even renamed the blog under my own name — time to build a personal brand, right?

My blog on WordPress
My blog moving to WordPress via Archive.org. Scraped on May 10th, 2013.

I tried to be disciplined: no more random daily ramblings. Just meaningful, well-crafted and focused posts.
In fine, I managed to write… five posts.

It was hard to keep up. I moved around a lot and changed jobs 3 times… I was suffocating.
Finding time, energy, and motivation to deliver quality posts was tough. Also, WordPress was time-consuming to maintain, and mostly … there was no reach or engagement.
I was sharing things to the void.

Then came 2014, I met someone who changed everything.
She saw something in me I had lost sight of, and that helped me to find meaning in myself.
We moved in together. Got married. Had kids. Life reshuffled.

Blogging faded into the background. Again. With two toddlers, my life went into hiatus for the second time.

Eventually, the blog turned into a backup of my Instagram. You know — baby photos, parenting rants, cute moments.

My blog on wordpress
My blog becoming an instagram backup via Archive.org. Scraped on Jan 12th, 2016.

Then, it was silence …

Episode Three - The Content Era (2021 - Now)

For seven years — from 2014 to 2021, zero posts.
I was barely surviving between dad/husband duties, work chaos, and insignificant DIY projects.

Then came COVID. I picked up reading again, and with that, the urge to write came rushing back.
I had forgotten how much writing helped me think. Not just to say things, but to understand them.
My blog was a quiet room where I could make sense of the noise.

By 2021, I’d had enough. I decided to move to AWS as part of going full cloud, and ditched WordPress and its endless plugin drama. And honestly, the hosting was too expensive for how little I was using it.

So I asked myself: what do I really need? Just a place where I can write with minimal effort.

Hugo was the best alternative: it’s fully markdown, GitOps oriented and overall, costs barely nothing.

The shift wasn’t that easy. Two platform switches had left the content messy, a lot was altered, and my bad writing habits have also impacted the quality of the posts.
It took a lot of pain (and scripts) to clean up the tainted HTML that those platforms left here and there.

And to be honest, some posts were unreadable. Others just… embarrassing.
But I kept going, it got smoother.

And I had time again — kids were older, routines steadier.
The habit came back. Stronger. More mature. More structured.

So I set a goal: one or two posts a month. Well-researched. Carefully written.
I found my rhythm. Automated it. Created templates. Made it effortless.

And yes, I brought back the original name: #!/bin/tom. Full circle.

My blog on hugo
My blog as it is now.

With the blog reborn, my writing had to evolve too. I couldn’t go back to rambling, I needed intention.

The Writing Approach

Back in the noisy era, I confess that I wrote whatever popped into my head. No audience in mind. No proofreading. Just raw thoughts with no structure thrown at the screen. Posts barely hit 100 words.
Think: “philosophising at the bar” meets “monologuing into the dark.”

Now? Every post starts as an entry on my notes app. I collect ideas, let them simmer, do some research, bounce thoughts off friends, dissect them, feed them. And when one feels ready, I dive in. Writing takes 2–3 weeks. Mostly fine-tuning, editing, and making sure it’s not just noise.

Each post is crafted.
Not just a brain dump — but something meaningful. Something that contributes instead of adding nonsense.

To be honest, going from 100 words to 1000+ isn’t just work — it’s a responsibility. If I’m asking someone to give me 10 minutes of their time, the least I can do is make it worth it. And truthfully, even if no one reads it, I still come out better after writing it.

Seeing new and returning readers? That’s the payoff. That’s the connection I missed.

What Now ?

Well, I just felt I needed to free up myself to say that, 20 years in, I have no intention to stop blogging.

I don’t blog to rant or overshare anymore — social media handles that just fine, even if I don’t believe in it much anymore. But this blog? It’s become my space for deep dives, ideas worth polishing, and things I care about.

It’s less frequent now. But better. Sharper. More meaningful.
I no longer write to be heard. I write to listen to myself, and hopefully, if someone out there resonates with that, then that’s a beautiful side effect.

20 years later, the noise is quieter, but the voice is clearer.