When I first discovered applications that stored their settings in plain-text configuration files, it felt like someone had finally switched the lights on.
The mystery disappeared.
Instead of hidden settings buried inside a binary registry or an opaque database, I could simply open a file and read what my computer was doing. Better still, I could change it.
That realization changed how I thought about software.
But another discovery a few years later changed how I thought about computers themselves.
That discovery was dotfiles.
Configuration Becomes Knowledge
Once configuration is stored as text, something wonderful happens.
Text can be read.
Text can be searched.
Text can be documented.
Text can be version controlled.
Text can be copied.
Text can be shared.
Instead of being trapped inside one particular machine, your computing environment becomes knowledge.
It becomes portable.
My Computer Became Reproducible
Around 2019, I started maintaining my dotfiles properly.
Seven years later, I still use essentially the same Vim configuration.
My shell setup has remained remarkably consistent.
In fact, I have a directory called .rc that is sourced from my ~/.bashrc. Over the years I have occasionally added a new file, removed an obsolete alias, or adjusted a setting for new software.
Otherwise…
It has simply kept working.
The amusing part is that I have almost forgotten how I originally built it.
That sounds like a bad thing until you realize what it actually means.
I don’t have to remember.
The knowledge has already been written down.
A New Computer Is No Longer a Project
There was a time when getting a new computer meant spending an afternoon rebuilding my environment.
Which aliases had I forgotten?
How did I configure Vim?
What plugins did I use?
Which environment variables mattered?
What did my prompt look like?
Every new machine felt like starting over.
Today, the process is almost boring.
As long as I have a network connection, I clone my bare Git repository containing my dotfiles.
Less than a minute later, I am largely back in business.
My editor behaves correctly.
My shell behaves correctly.
My shortcuts are there.
My workflow feels familiar.
The machine may be new.
The environment is not.
Version Control Changes Everything
Years ago, backing up configuration usually meant copying files onto another disk and hoping you remembered everything.
Git changed that.
Every change becomes part of a history.
If I experiment with a configuration that turns out to be a terrible idea, I can simply roll it back.
If I discover a useful improvement, it becomes part of the permanent record.
My configuration evolves in small, understandable steps.
That is exactly how software evolves.
Why shouldn’t my computing environment evolve the same way?
The Opposite of Starting From Scratch
One thing I never enjoyed about registry-based systems was that customizations often felt tied to a particular installation.
You could certainly back up an entire machine.
You could export sections of the registry.
But neither felt like carrying your environment with you.
Dotfiles turn that idea inside out.
Instead of backing up an entire operating system, you preserve the parts that actually express your preferences.
The operating system becomes replaceable.
Your workflow does not.
Documentation You Write Without Realizing
There is another benefit that is easy to overlook.
Every configuration file explains something.
Every alias has a purpose.
Every function tells a small story.
Every comment reminds your future self why a decision was made.
Over time, your dotfiles become one of the most honest forms of technical documentation you will ever write.
Not because you intended to write documentation.
Because you intended to solve problems.
The documentation emerged naturally.
Plain Text Wins Again
One of the recurring themes on this blog is that plain text has surprising staying power.
Dotfiles are another example.
They are ordinary text files.
No special editor is required.
No proprietary format needs decoding.
No vendor controls how they are interpreted.
They can be edited with Vim, Emacs, Nano, Notepad, or any editor you happen to have available.
They survive operating system upgrades.
They survive hardware replacements.
They survive decades.
Reproducibility Is Freedom
Software developers often speak about reproducible builds.
Scientists care about reproducible experiments.
I think ordinary computer users deserve reproducible computers.
Your machine should not be a collection of lucky accidents accumulated over several years.
It should be something you can describe.
Something you can rebuild.
Something you can understand.
Something you can carry with you.
That is the real joy of dotfiles.
They remind us that our computers are not magical objects that gradually drift into a usable state.
They are systems whose behavior can be written down, preserved, and recreated.
And once your computing environment becomes reproducible, a new computer stops feeling like the beginning of a long weekend.
It becomes just another machine waiting to read your text.