DEV Community

samYorel
samYorel

Posted on

The side project that made me love shell scripting

🌍 The problem: your environment, that forgotten essential

You know the drill:
Your laptop dies. Or you have to switch OS for a client project.
What happens? Hours spent reinstalling Git, Node, your IDE, aliases… before writing a single line of code.

It happened to me during a major rush. Worst possible timing. And that’s when it hit me:
Your environment isn’t a detail. It’s your foundation. And I had zero control over mine.

🔥 The trigger: stop suffering, start owning

I don’t code much at work anymore, so when I start a side project, every minute counts.
Losing an hour fixing why brew can’t find wget? Frustrating.
Fighting broken shortcuts because I don’t have my usual layout? Even worse.

So I decided to treat my setup like a product:

  • focused on user needs (mine),
  • designed to remove friction,
  • minimal but reliable.

No magic frameworks, no over-engineering.
Just simple scripts I understand and can trust.

🛠️ My approach: scripts, not a black box

It’s more than just dotfiles.
I built a small toolkit:

Universal process

âś… Features:

  • A Makefile to orchestrate everything (make install && make init)
  • Shell scripts for macOS, Fedora, Ubuntu
  • A few aliases and editor tweaks

No Chezmoi. No Stow. No Ansible.
Why? Because I didn’t have time to learn, and I prefer knowing what I run (no hate here just "dad life").

📦 Repo: github.com/thomas-leroy/dotfiles

Example:

# Install packages and initialize environment
# Display status, prompt questions when needed
make install && make init
Enter fullscreen mode Exit fullscreen mode

Five minutes later, I’m home.
Far from perfect, but damned satisfying.

âś… The good and the messy

What works:
âś” Familiarity in minutes
âś” Less friction, more focus
âś” Every bug fixed = permanent gain

What sucks:
✖ Maintenance never ends (and that’s okay)
âś– OS quirks are sneaky
✖ Nothing’s ever perfect (and that’s the game)

📚 What I learned

  • Organization beats automation: clarify before scripting.
  • Every script is a conscious decision (hello DHH).
  • Simplicity wins: better to understand than blindly copy-paste an Ansible playbook.

Automation isn’t laziness.
It’s discipline.
It’s investing one hour today to save ten tomorrow.
And come on, it's fun!

🚀 Your turn

Does your environment feel like yours, or are you just putting up with it?
Have you ever treated your setup like a product?
How do you balance quick fixes versus long-term ROI?

👉 github.com/thomas-leroy/dotfiles
It’s raw, imperfect, but real.
Steal ideas, roast my approach, or share your worst setup nightmare.

🎭 Final confession

I know that in two years, I’ll probably throw this all away and rewrite everything using some fancy new tools.
But for now… I’m happy with it.

Top comments (0)