As I mentioned in the last post on returning to writing, this website is now powered by Piranha CMS, an open-source application written in .net core. In this followup post, I'll talk about some of the reasons I chose this platform, and the long journey that led me here!
In a future post, I'll also talk more technically about how I was able to leverage the awesome extensibility of this platform to fully power my site, but for now, let's go back to the beginning.
A Little Backstory
This site has gone through a LOT of changes over my career. I can't remember what it was originally on when I first started, but I'm fairly confident it was wordpress, as I still have db backups of my old posts (more on that in a bit!) in that db format.
By the way, special thanks goes out to the wayback machine (one of many thanks I owe for helping me get here as we'll see) for giving me a glimpse into my past as I prepared this post!
![Hello from 2006! selarom-website-2006](/images/selarom-website-2006.png)
Hello from 2006!
From there, I naively attempted to make my own .NET version of Wordpress, which, although never completed, did allow me to at least serve the posts from a custom .net Web forms site I built!
Things really changed tho when I started using Sitefinity, which, for those of you who remember the 3.x days, was the CMS to beat back then! I converted my site to use the community edition (yea they used to have one, dang I'm old!) and imported all my posts into that platform.
I kept that up for many years, eventually even joining the Telerik team in a developer advocate role. But the eventual jump to Sitefinity v4+ broke a lot of stuff, and I decided I'd rather just write than muck around trying to get things working, and settled back to Wordpress, where it remained until this year.
The bad news was that I screwed up the export from Sitefinity, and only the summaries of many of my posts were saved! So for YEARS I had a broken blog that I swore I would fix someday but, of course, never did. I had a db backup of my old Sitefinity site I carried from machine to machine as I upgraded, always promising to spin it up and get the posts back, but just never found the time.
![You call THIS a blog post?! selarom-blog-post-summary](/images/selarom-blog-post-summary.png)
You call THIS a blog post??!
Until now! With no excuses to put it off another freaking DECADE, I decided that not only would I refresh my site, but I'd make the time to restore as much as I could from ALL my old dev blog posts over the years.
Luckily I'm a bit of a packrat when it comes to digital files, so not only was I able to restore a BIG chunk of those missing posts, but I had the images as well!
For almost everything else, the wayback machine was a life saver! I found the full contents of pretty much every post, and in some cases even the original images!
So the summary-only post pictured above is now live in all it's obsolete glory, as are nearly all my posts from over nearly two decades!
Improvise, Adapt, Overcome
So was it worth all the hours it took for me to go through all this nonsense just to restore a bunch of posts about stuff that probably isn't even valid anymore?
![maybe-maybe-not-ted-lasso](/images/maybe-maybe-not-ted-lasso.gif)
With the speed that technology and platforms move in software, my older posts may not be of much relevance today. So it wasn't unreasonable to consider just trashing it all and starting fresh... I guess I'm just weird like that, a bit of a completionist, and dang it, those are my words, and thoughts, and efforts, and I didn't want to just throw them all away forever.
Plus, if there's one thing about me when it comes to anything related to software development: I love a challenge!
In the end, I learned a LOT of lessons about what I did wrong all of these years that kept me from achieving the regularity of writing I have always wanted. I knew what I wanted to do next, but going through this menial process also clarified what NOT to do so that I could reduce the barriers that could slow me down or block me.
I also converted all my posts to markdown and added them to source control, including the images! This way I'll never lose them again, and they'll always be ready to publish to a new platform, should I ever find the need. I invested in a solid markdown editor (Typora, highly recommended and currently only 15 bucks!) and configured it so I can just fire it up, start writing, and even drag and drop my images. There is nothing holding me back now, no excuses, no blockers, I can just WRITE!
However, now that I had my process in place, I knew I needed a platform that would align not only with my technology stack (.net) but also my workflow, the way I think, write, and publish (including supporting markdown!).
Although there are a ton of author-focused platforms, systems, applications, they were either third-party and offsite (like Medium or Substack), were overkill for a simple blogging site (like the major CMS players including Umbraco, Kentico and even the free and otherwise awesome Orchard), or were just too simple, limited, or just plain OLD (like dasBlog or blogengine). And I sure as F wasn't going back to wordpress!
Piranha CMS to the Rescue
I had actually tried Piranha CMS a few years back when I was exploring CMS options both personally and professionally (something I continue to do today!). I remember liking it, but never really gave it much time, since it was such a small project.
But even though it was already pretty slick at the time, it has come a LONG way since then! It has already been rewritten for .net 8, and continues to be updated with new features and fixes on a fairly regular basis (I even sent a PR for a bug I discovered during this migration that I'll write a post about later!).
I scaffolded up a quick prototype to see if I would be able to create the content structure I needed, not only for my existing post history, but the new stuff I'm hoping to write in the future. It was a rousing success! The platform of course has a built in mechanism for supporting the concept of blogs, blog posts, categories and tags. And it even supports markdown! The underlying model is totally (and easily!) extendable, allowing me to add support for things like my blog post series and experience without cluttering up the project with a bunch of boilerplate or complicated code.
Of course, I will get into the technical specifics of how I did this in a future post, but the point for now is that Piranha CMS is EXACTLY what I needed in a CMS for my site! If you're a .net dev looking for something simple, yet powerful, to drive a smallish to medium sized site, do give this CMS a try!
![you-are-gonna-love-it-chris-pratt](/images/you-are-gonna-love-it-chris-pratt.gif)
So Let's Do this Thing!
So now you know the rest of the story! I finally have a site I'm not only happy with, but one I can extend, build, tweak, experiment, and most importantly write about! So stay tuned, as in my next post, I'll get back to the good, fun, technical, codey stuff, including setting up Piranha CMS and how easy it was to customize for this site.
Until then, as always, thanks for reading!