Skip to main content
Back to work
  • Full-stack
  • Docker
  • CMS
  • API

OPEN CMS

OPEN CMS is a multi-tenant content management system I built for OPEN Technologies, letting each municipal partner publish their own map content without waiting on the development team.

- Full-stack: sole CMS build, from platform selection through the GraphQL API
Login screen for GRID by OPEN, the map application backed by the new Craft CMS instance
Loading...
GRID CMS's login screen, backed by the new Craft CMS instance

The Problem

The benchmarking software at OPEN was used by different benchmarking programs across municipalities. The new disclosure map of the main application thus required unique content targeting each municipality. The existing app could handle multiple tenants (at least 6 different municipalities), but the configuration had to be hard-coded. This presented several issues:

  • Municipal clients had to interface with the development team to update their content, coupling the development timeline with their needs
  • Developers had to take on extra work ensuring the copy was correct, resulting in errors and time lost in clarification
  • Custom content types were sometimes unsupported by the existing configuration, which meant costly development work

Because of this, a new content management system (CMS) was necessary to:

  • Offload custom content to clients, decoupling the development team
  • Empower clients to present their own copy, granting them more powerful expression
  • Align the application with standard best-practices, improving the professionalism of the team

My responsibility was to establish this new CMS and lay the foundation for future development and maintenance, delivered within the project's timeline (roughly 2 months).

Approach

As an OPEN developer, I worked in Agile flows, tackling issues related to the CMS. This helped me manage the system in concrete milestones.

Milestone 1: Picking the CMS

The process started with in-depth research of CMS software. Potential candidates were found and screened according to criteria that I had to establish, then shared with the rest of the team. From this, Craft CMS was picked as a professional and economical option.

Milestone 2: Building the new infrastructure

The new map presented the opportunity to build infrastructure for the new CMS from the ground up.

Incorporating the CMS

Craft CMS was an entirely different application, so I had to learn systems development to incorporate it as a separate instance from our application. After conducting extensive research and prototyping, I settled on a build system based on Make and Docker, a familiar system to the rest of the team. This reduced developer friction and onboarding from a weeks-long task to a few days, by working with our existing approaches instead of completely new architectures.

To capture clients' requests for richer expression, I configured data fields such as Rich-Text-Fields and custom tags. This enabled municipalities to add layers of content which couldn't exist before.

Finally, for the CMS handoff, I ensured I maintained clear documentation and configuration so that future developers could easily adjust as needed.

Wiring the CMS to the application

The new infrastructure was a good exercise in working with pre-existing patterns and innovating with new solutions. Working with my senior's specs, I built improved plumbing that led to scalable and extendible code still in use today. I also led the development of a new GraphQL API, chosen to leverage a more modern and extensible schema, and shared my knowledge with the team. This improved schema adjustments from larger multi-day tickets to a single short ticket lasting hours.

Result

The key outcomes I achieved through the CMS:

  • Client self-service — clients can now publish content changes without contacting the development team, reducing update delays from weekly to as-needed
  • Best-practice architecture — a new system was built following existing best practices, improving development time and enhancing work for future developers
  • Strong documentation — cutting onboarding time from weeks to days

Each municipal partner now controls its own copy, logos and program details through the CMS — shown here for Building Benchmark BC and Better Buildings Ottawa.

Building Benchmark BC's About panel, with copy and partner logos authored by that program's team
Loading...
Building Benchmark BC's client-authored About panel
Better Buildings Ottawa's About panel, with its own branding and copy authored by that program's team
Loading...
Better Buildings Ottawa's client-authored About panel

Clients also author their own case studies, which surface directly on the map:

A case study pin highlighted on the map, before being selected
Loading...
A case study, highlighted
The same case study selected, revealing its client-authored copy in the sidebar
Loading...
...and selected, revealing its copy

The project also helped me understand the importance of strong communication and collaboration with my OPEN team members. I am proud of making robust software by thoroughly understanding the project's specifications, identifying existing effective patterns and advancing opportunities to innovate OPEN's systems.

Need my help?

I take on web apps, hardware-to-UI integrations, and technical consultations — every engagement at a fixed scope and price.