Published on July 7, 2020

Aamir Shaikh headshotWritten by Aamir Shaikh

Web Programmer/Analyst, College of the North Atlantic

In the 16 years that I’ve spent working as a programmer/analyst, I’ve found that many educational institutions struggle with content management systems (CMS). Having seen first-hand the difficulty a large institution can face with a CMS, I set out to ensure the College of the North Atlantic (CNA) had a better experience with something we put together in-house for nearly zero additional expenses.

Now, I am no superhero by any means but because I set out to do something super, I was constantly looked at as if I was. So along with my co-worker, Sterling Tulk, we decided to make history for CNA. The goal was simple: If I build it, they will come.

Have you considered building your own content management system? Read on to discover why an open-source option wasn’t for us and check out the lessons we learned along the way of creating our own content management system.

Why didn’t we just go with an open-source CMS solution?

Tony Stark meme

For the open-source connoisseur, CMS-related expenses can be very low, however, for your audience, the learning curve is still just as difficult without the right team and resources to manage things. We didn’t go with an open-source solution because CNA is an institution built on all things Microsoft. While we acknowledged the many open source solutions out there, there were just too many factors that prevented us from running open-source software on our physical servers.

Okay, what about a pre-built CMS solution that is based on languages we do support?


Nearly every CMS that costs money is expensive, has design restrictions and often a steep learning curve when it comes to development and use.

We wanted to avoid purchasing a CMS as we had gone down that path before, and it was quite challenging for a team of two people to design new templates within the confines of a pre-built CMS while trying to learn it and simultaneously provide support to our content editors. We had also encountered updates in the past that would break items we had heavily customized. We just found ourselves troubleshooting things more often and creativity ended up taking a backstage to functionality.

“It’s not who I am underneath, but what I do that defines me”

Building a CMS from scratch is not for everyone. However, as Newfoundland and Labrador’s publicly funded college, we regularly look at the resources (human and financial) that we have at our disposal. We knew our audience and through interviews and short focus groups, were able to determine their needs. Our staff and faculty needed something easy to work with and the solution had to be unified with our active directory login.

A small committee was formed with IT, student services, web, marketing and other key players to ensure that everyone was privy to change. Having worked with object-oriented programming languages for most of my career, I decided to stick with C# as the server-side language. Using Visual Studio 2017 and armed with AJAX, bootstrap, jQuery and CSS knowledge, I went on my way to make history for CNA with our in-house content management system.

“With great power, comes great responsibility”

Remember that little pep-talk Uncle Ben had with Peter Parker when he became Spiderman? It still stands for pretty much anything in life and when it comes to Content Management Systems, it could not be any truer. Part of what allows Spiderman to be responsible with his powers is the fact that he understands them. The same holds true here. In order to have any CMS work for you, you need to understand it fully: inside and out – a pro of having a CMS built in-house. Beta tests are easier too!

“Look inside you. You are much stronger than you think you are. Trust me.”

In a perfect world, society would be ready to welcome change with open arms. Unfortunately, we don’t quite live in a perfect world and so we must convince people to buy our magic potions. When you are pitching the idea of building an in-house CMS to your peers, you will likely find yourself looking towards analytics to help sway the good fight in your favour.

As web developers, analytics are often our saving grace here – just being able to prove via bounce rate or behaviour flow that content is indeed king, you can get buy-in from the right sources. Analytics are a part of many pre-built CMS solutions and you can refer to them to determine where your content editors often get stuck.

For our project, we were able to understand that pre-built solutions were simply too much for what we needed. In majority of cases, the myriad of options available were either not used or required an immense amount of handholding. As the only two web developers at CNA, it was faster for us to implement those options on our end through simple code snippets.

Oops! Even superheroes make mistakes

It would be silly to say an in-house CMS project would go as planned at every step. There will be things that will be often out of your control. The first few weeks or months of your project can easily just be understanding how data flows through your institution, determining the needs of potential content editors, and figuring out how your CMS would affect existing systems. It can all seem daunting at first but without doing that leg work you can easily run into problems further down the road.

We had initially determined that our CMS needed to be tied into our Active Directory and I spent a lot of time understanding how we used Active Directory throughout all our systems to authorize an employee. Initial authorization for our CMS was done via the first half of the email address as we understood that seemed to be the authorization method to use. However, in the later stages of the project, I had to do some backtracking in our Lightweight Directory Access Protocol (LDAP) connection string as the active directory login username was no longer always the first half of someone’s email address. Authorizing a user was the first step of our CMS, and we had managed to make a blunder there. Nevertheless, it was a lesson learned to double-check and triple-check all your bases before diving into deep waters.

What’s next after the “Grand Finale”?

Once you have launched, don’t forget to continue supporting your CMS. Our CMS currently has over 50 users and is used to maintain several pages of our website including 17 campus pages, documents, accommodation listings, program and course information and more. You will find yourself identifying potential upgrades as you continue to involve yourself in meetings with IT and owners of other systems at your institution.

If you didn’t quite believe you were a superhero before, you will believe it now.

Have more content management system questions for Aamir Shaikh? There’s a lot more that goes into building a CMS than what is covered here. Get in touch: @GreenShadow2099 (Twitter), aamir.shaikh@cna.nl.ca