Note: The philosophical musing in this blog post is hidden behind a couple of really nerdy anecdotes. Feel free to skip to the punchline.
A couple of years ago I started writing a CMS. I wasn't happy with any that I had found, and I was convinced that I could do a better job. the first iteration was light and fast, database driven, and extremely customizable. But it still required too much hand coding.
I learned a ton from that attempt, so I decided to give it another go. Version 2.0 would be modular and extensible. I decided to build a module for every feature I wanted but hadn't found in a CMS. I was well on my way to the CMS dreams are made of when my external hard drive bit the big one, leaving me with no backup. Then my laptop was stolen, and my CMS was gone forever. 2.0 never made it to a production server.