Moving to Umbracoland

Heads Up!

This article is several years old now, and much has happened since then, so please keep that in mind while reading it.

Storytime!

About four years ago, the company that I work for, Webmind, were in the process of finding an alternative CMS apart from our own in-house developed, closed source CMS and we came across Umbraco. Our CMS at that time was quite complex to get started with and developing new client specific features were very time consuming, so we started looking for a open-source and more flexible alternative that could be an alternative for some of our clients. Our goal was never to replace our own CMS, but rather have more options for our clients, and developers, to choose from. It's ironic to look back on, since Umbraco has today completely replaced our old CMS, and today we’re proud to consider ourselves a 100% Umbraco web agency and as of 2016, we haven't sold any solutions with our old CMS.

It’s not that there was anything particularly wrong with our old CMS, per say. It had a lot of functionality similar to Umbraco, but of course on a smaller scale, and we always made sure that it was resting on the latest technology while at the same time being easy to understand and with a responsive UI. A few days a week usually consisted of targeting known core bugs and client feature request, and seeing how we built it from scratch, you form a very special bond to the project. So the decision to completely abandon it and start looking for alternatives was not an easy decision to make.

In this post, I'm going to mention a few big differences that I’ve noticed when moving from our old CMS to Umbraco. Things that I was told about, but probably didn't think would have had such a big impact, but that has grown to become a big part of my career. So if you are in the process of finding a new CMS to work with, or you'd thought to yourself that maybe I should just build my own CMS, here are a few reasons why I think Umbraco is the better way to go. I'm not saying “Don't build your own CMS!”, I'm just saying consider these things before you try re-inventing the wheel.

Community and support:

You’ve probably heard this song a few times before, I know, but I still think it's worth mentioning again. There really is something special with this community, and I can't really put my finger on exactly what it is that makes the Umbraco community so special. Every time i try to explain it to a friend or a client, it always comes out a bit cheesy, but I think it's a combination of the friendly and transparent attitude that is sent out by HQ, combined with a very clear “Together we are strong” attitude from the community members. There is no competition, at least not that I’ve noticed, in the community but instead everyone is generous and incredibly eager to help and spread their knowledge with their fellow Umbracians. This becomes especially clear when you attend your first Codegarden.

One thing I used to hate with having an in-house developed CMS was when you got stuck and needed help. We are a small agency, so there is not many people to ask for help and if the solution was not found by anyone in-house, you felt pretty stuck. Sure, you could try to find help on Google or StackOverflow, but it was difficult to find a very specific solution to your problem when it was taken out of context. Also I do believe that StackOverflow can sometimes have a bit of a cold attitude amongst developers and instead of encouraging each other there is sometimes more focus spent on picking at each other's code instead of actually helping each other.

I'm a firm believer that the community is the number one most important aspect of Umbraco and it's always my go to answer when someone asks me why I love Umbraco. As Douglas Robar mentions in the keynote from Codegarden 2015:

-”Let's face it, the software is good, but without the people involved, would we be so excited?”.

Never in a million years would I have thought that I would be so excited and care so strongly about a CMS, but I do, and that really says something. I love that fact that I can always Tweet or post a question on Our.Umbraco and almost immediately be in a discussion with some of the most skilled Umbraco developers out there or even someone from HQ themselves, sharing ideas and friendly feedback.

And as Umbraco keeps on growing, it's important that we all remember and make sure that this friendly and positive attitude remains a cornerstone in the Umbraco community. It can be scary sometimes to be the “new kid in school”, especially when you are a new developer trying out Umbraco for the first time, but it's these new developers that are going to be the future core contributors, the future MVP’s and the future package developers. And it's our responsibility to encourage them to keep on going, no matter how shaky their first steps might look.

Features and bug fixes:

New features in our old in-house CMS were usually developer based on client request. The development flow was usually that one client requested a feature that was missing from our CMS, so we built that feature for that specific client. If the feature could be made in a generic way and could turn out useful to other clients, we then moved that piece of code into the core project. This was positive in the sense that all features that were moved into the core were based on actual client requests, which, by definition, also made them relevant. However this was not only a positive thing. One problem with being a small agency and only having client requested features was that the quality of our product was completely based on the level of demands that our clients had. So if for a long period we didn't get challenged enough by our clients, the development of the core project stood still.

With Umbraco, we don't have to build new features or fix bugs ourselves (we can however, by contributing to the Umbraco core). The development never stands still and we constantly get shiny new features, and the only thing we have to do is upgrade. Take v7.5 for instance, which gave us Password recovery, Health Check and 301 redirect management, and all we had to do was upgrade our solutions. With all the amazing people who contribute to the core, it's like having hundreds of developers working for you, making sure that the product remains top notch.

Training, courses and hiring:

I can honestly say that I knew every line of code in our old in-house CMS, and so did most of my colleagues. This was positive in the sense that when we found a bug or if the CMS started to misbehave, we usually knew straight away which method, in which class, was causing this behavior. The problem, however, with developing something in-house with a closed source, is when the company grows and needs to hire new developers. You can't expect anyone to be familiar with the platform, which makes selecting new developers more difficult, with the initial period of a new hire, usually consisting of them getting to know their way around the core. With Umbraco as our main platform, we can actually find developers who are already familiar with the platform, who know their way around Umbraco and who can get started working straight away. Also with the Umbraco training programs and courses on Umbraco.tv, the company can always make sure that everyone is up to speed on best practices and new features.

A familiar platform:

One of the biggest problems with our old CMS, was when it came to selling. We always had to convince potential clients that our CMS was the best one around and in order for a client to select us as their website provider, they pretty much had to trust us and take our word for it. It's significantly easier to sell a product that is used by so many and that's trusted by large companies across the world, instead of something that you'd developed in-house for a few specific clients.

Umbraco is growing and it's an exciting journey to be a part of. A few years ago when we started with Umbraco, we had to tell potential clients that there is actually other CMSs available in the world besides Wordpress, and that there is this great product out there called Umbraco. Today we get called up, a few times a week actually, by clients who have read or heard about Umbraco and that we work with this platform. They want to know more, and this is a completely new, pleasant situation for us.

Personal and professional growth:

When I say that Umbraco has completely changed how we work at Webmind for the better, I'm not exaggerating in any way. Time and money that we used to spend on developing our own CMS can now be spent on refining our craft, focusing our time on doing what we actually do best, building great websites. Not only that, it has changed me a lot as a developer as well. I've always, humorously, called myself a self-hating system developer, because I hate building systems. And when I say systems, I mean booking systems, CRM/ERP systems and yes, content management systems. I love building beautiful websites with smart functionality and well structured content. Umbraco lets me focus more time on my craft and become even better at doing what I love.

Wrapping up:

I hope this post can be helpful to anyone looking for a new CMS plattform to start working with or maybe you work at an agency and you need to convince your boss that your company should consider moving to Umbracoland. No matter the reason, I hope this can be a helpful resource.

Thank you for your time, and take care of each other. And Merry Christmas and happy holidays everybody!
Also if you post a friendly comment or follow me at Twitter, that would really make my day.

Dennis Adolfi