Amnesty International, an awesome CMS powered by truth and knowledge

It used to be the case that changes to site content would need action from a team of software professionals. Change was a costly activity often involving developers, designers and database administrators. Modern content management systems (CMS) have removed much of that overhead. Content editors are now empowered to draft, layout, organise, edit and publish articles. With an organisation involving 100s of content editors and over 100,000 existing pieces of content, this is a "good thing".

Digital agencies have been content to shrink their technical involvement in their clients' sites. After the initial flurry of set up and release, the site will move immediately to maintenance. At Code we're trying a different approach. We believe with modern CMS's reducing the donkey work, software professionals are free to work on the awesome stuff. We all became coders to work on cool stuff, not install the same system over and over again. We want to form relationships and partnerships with our clients and actually have a stake in them being successful.

At its core, the engine that powers Amnesty is the mature, open source .NET CMS Umbraco. It fulfils our criteria to be easy to set up, maintain and extend. It's popular with content editors and Amnesty has produced a lot of content over the last 5 decades. We index this content in Elasticsearch rather than using Umbraco's default search engine. This gives us a powerful full text search engine and will make it simple in the future to scale out as the site grows. Both Umbraco and Elasticsearch have strong communities. You may bump into us at the recently founded Manchester Elasticsearch user group.

Our tech stack is hosted in Microsoft Azure. This gives us powerful autoscaling. For example, Amnesty recently released their annual report causing a 200% increase in traffic. The system scaled with no degradation of user experience. The centralised management also complements a devops mentality.

On to the cool stuff. We are currently working on a flexible metrics system to record information from a site in real time. Using structured logging, captured events are queued and aggregated to various tools. At present the system uses Elasticsearch, InfluxDB, Grafana and Kibana but is extendible. This will be invaluable to us, aiding in the "measure" step of Lean software development. Our clients gain rapid feedback on how decisions and events impact their users and their KPIs. All parties will be able to make informed choices backed by data.

Whilst Amnesty may be the test bed for this new system, its decoupled nature means it should shortly be available to all our clients.


Five reasons to reconsider digital procurement processes