Q1 2026

Moira Studio

Building Content Management System for Moira Law Firm Website

Context

I developed Moira Studio, a tailored CMS that gave the Moira internal team complete autonomy to update content and section layouts for the Moira public site.

Outcome & Impact

10+

Pages published

Composed in-house and live on Moira’s public site.

100%

Adoption

All four of Moira’s admins, active on Moira Studio. No one went back to asking a developer.

Days → minutes

Time to publish

Publishing a page went from a request that waited its turn to something the team does in one sitting.

Challenges

  1. 01

    Nothing to build on

    Moira had no CMS, and an off-the-shelf one would not fit a site made of bespoke sections. Everything had to come from nothing — including a guess at which components the team would need a year out, because a component that does not exist is one they cannot reach for.

  2. 02

    Content that will not hold still

    Team members, achievements and news each have their own shape, and the list of them was never going to stop changing. Anything hardcoded would come back as a request the first time Moira hired someone or won something.

Design Strategy

Design the end-to-end system to ensure scalability, UI consistency and usability for the admin site.

How Moira Studio publishes to the public siteAdmins work in Moira Studio, arranging site structure, composing pages from sections, maintaining team and article records, and setting SEO fields. Publishing promotes that draft content to the live store, which the public site reads to resolve routes and render sections for visitors and search engines. A single shared section component library backs both the editor’s live preview and the public site’s renderer, so what an admin sees while editing is what ships.MOIRA STUDIO, ADMINSite structureRoutes, order, visibilityPage editorSection rail, inspector, live previewTeam & articlesRecords behind the detail routesSEO fieldsTitle, description, share imagePublish changesDraft becomes liveMOIRA-ATTORNEY.COM, PUBLICRoute resolverStatic paths and /news/[article]Section rendererComposes the page from its sectionsMetadata & sitemapEmitted per published pageVisitors & crawlersProspective clients, search enginesShared section component libraryOne definition drives the editor preview and the live page

Showcase

Composing a page: sections reordered, hidden, and checked at each viewport.
Composing a page: sections reordered, hidden, and checked at each viewport.
The team page: one layout, filled by whichever member is selected.
The team page: one layout, filled by whichever member is selected.
And published: the same profile on the live site, as a visitor meets it.
And published: the same profile on the live site, as a visitor meets it.

What users said

  • “We had a great time working with the team! They truly fulfilled our needs and produced a website that is not only esthetically beautiful but also useful and simple for us to utilize going ahead.

    We highly suggest their web development services to anyone searching for a company that listens, understands, and delivers!”

    Moira Law Firm
Back to all work