Get in touchcorey@spiritdevs.com

Principal Engineer, Web and Mobile Platform Architecture · Corporate Interactive · Sydney, Australia

Theme
github.com/coreybainSnapshot 09 OCT 2026 · 13:08 UTC
Direct line

Start a conversation.

Send a note to corey@spiritdevs.com. Add a brief, job specification, or other context if it helps.

AttachmentsUp to 3 files · 4 MB combined

Submitting stores the message and nothing else — no queue in front of it, no autoresponder, no list to be added to.

05 / 05Case study

Visual Editor

Principal EngineerCorporate InteractiveSydney, Australia

Corporate Interactive's multi-tenant visual CMS and website builder, combining structured page composition, content and asset management, publishing, forms, commerce and public rendering.

Visit the product website↗
V
01The problem

A visual CMS has to give editors freedom without allowing the saved page to become inconsistent or unsafe. Responsive layout, reusable content, custom HTML, assets, navigation, publishing, SEO and public performance all meet in the same system, often across many customer sites and years of stored content.

02The approach

Within the Corporate Interactive team, I have helped modernise the established WebDirector platform while continuing to ship editor improvements. My Principal Engineer role spans the responsive layout model, editor state and interaction, content and file tooling, caching, security and the Next.js/tRPC/Drizzle architecture that connects authenticated editing to public delivery.

What the product is#

Visual Editor is the editing experience within Corporate Interactive's WebDirector platform: a multi-tenant content management system and website builder for businesses that need more than a collection of static pages. Editors compose pages visually from structured rows, columns and content blocks, manage shared content and files, preview responsive layouts and publish into the same system that serves the public site. The wider product includes navigation, blogs, calendars, forms and data capture, ecommerce, SEO controls and reusable modules.

The platform has evolved over many years and currently combines a modern Next.js and React application with typed APIs, a Drizzle/MySQL data layer, AWS-backed assets and a large set of project-specific modules. That history is valuable—real sites and workflows already exist—but it also makes compatibility, performance and clear boundaries essential.

Working as part of the team#

I work on Visual Editor as part of the Corporate Interactive engineering team. Multiple engineers contribute to the editor and the surrounding CMS, so significant changes need a shared model and migration path rather than assumptions held by one person. We collaborate through reviews and integration work, and we use feedback from live customer sites to distinguish a local interaction problem from a deeper issue in layout, persistence or public rendering.

As Principal Engineer, I help connect those layers. I have been responsible for architectural direction and difficult cross-cutting work, but also for making that direction usable by the rest of the team: documenting constraints, extracting reusable behaviour, reviewing implementation choices and improving the system in increments that existing sites can absorb.

My role and contribution#

My editor work includes responsive preview and breakpoint behaviour, row sizing and full-width layouts, contextual controls, drag-and-drop state, rich-text tooling and reusable widgets. Around the editor, I have worked on file-management performance and image compression, public-shell caching, authentication and two-factor flows, route and content caching, and safer sandboxing for customer-supplied HTML.

I have also contributed to the platform's modern application structure using Next.js, tRPC, Drizzle and shared TypeScript contracts. The goal has not been a cosmetic rewrite; it has been to make authenticated editing, persistence and public rendering easier to reason about while continuing to serve the capabilities already used across customer projects.

What I learned#

Visual Editor taught me to see a page builder as a constraint and serialisation system. The visible canvas is only one projection of a structured model, and responsive preview, persistence and public output must all interpret that model consistently. It also reinforced that extensibility needs boundaries: custom content and project modules are valuable, but they need security isolation, predictable APIs and performance budgets. Most importantly, I learned that modernising a mature platform is a team discipline—progress comes from creating reliable seams where old and new code can coexist, then moving those seams deliberately.

Case 05 · 09 OCT 2026 · 13:08 UTC
03

Outcomes

142 sessions · 75 hours

What changed

04 delivered
  • 01Structured visual page building with responsive layout controls and preview
  • 02Shared content, assets, navigation, blogs, forms and commerce in one CMS
  • 03Safer custom-code handling and role-aware authenticated editing
  • 04Modern cacheable public rendering backed by a typed application stack

Stack

07 components
  • Next.js
  • React
  • TypeScript
  • tRPC
  • Drizzle
  • MySQL
  • Zustand

Built with agents in the loop

Measured
142
Agent sessions
75
Hours at the desk

Against the busiest platform on record (882 sessions)

Average session32 min
Share of all sessions7%
Rank by effort2 of 4

Hours are wall clock with an agent in the loop — specifying, reviewing and correcting, not just generating.

04Keep readingAll work
S
Previous platform

SoldOnline

04 · Corporate Interactive

Q
Next platform

QuoteCloud

01 · Corporate Interactive