Problem

Designing and building client websites for the Elevate LMS was the job my manager and I were originally hired to do. Clients paid a fraction of what an actual design studio would charge, since the work was bundled into their all-inclusive contract. A merger later added full-time UX design roles on top of that work, but legacy clients meant neither of us could be pulled off it entirely. Elevate Basic, the existing self-serve option, hadn't solved it either: dated and over-optioned, with clients hiring us anyway.

Solution

Before scoping anything, I interviewed sales to understand where Basic was falling short with clients, then partnered cross-functionally with the PM on object mapping and a gap analysis against competitor products — landing on three out-of-the-box templates plus a theme manager as the alternative to Basic's overwhelming option list. I designed both across several iterations, then built the templates myself: scoping CSS and Blade variable structure with our senior LMS developer, testing responsiveness, and shipping via git.

Result

Elevate Themes shipped: three templates and a self-serve theme manager clients could run themselves. The impact was immediate — custom site builds dropped from 30 in the 13 months before launch to just 6 in the first 8 months of 2026, cutting my manager's and my manual workload by roughly two-thirds. From there, I worked with sales and client success to price Themes as its own product line.

Website Designer admin screen showing the Advanced Settings tab — hero banner code, hero background and text color, and general color settings for header, page, title, link, and body text — next to a live preview of the client site

Advanced Settings — hero banner, color, and button controls, with a live preview of the client site

Learn With NAGC homepage — a pink and purple branded eLearning site with an upcoming-webinar banner, four themed content tiles, and a live events list, built on the shipped Elevate theme system

Learn With NAGC — bold, colorful branding, built entirely on the shipped theme system

NCBFAA Educational Institute homepage — a navy and red branded site with a global-trade hero banner, course search filters, and six themed content tiles, built on the same shipped theme system

NCBFAA Educational Institute — a completely different industry, same underlying system

AAOP homepage — a teal and maroon branded site with a left sidebar navigation, hero carousel, four themed content tiles, and a paginated recommended-courses list

AAOP — the sidebar-based template, live for a real client

“So you’re designing yourself out of a job?” — Senior Developer | Elevate

Themes was built to answer exactly that: give clients enough self-serve ownership that most future website tickets wouldn’t need to land on us at all.

What Elevate Basic got wrong

Themes had a predecessor, Elevate Basic, and it had already tried to solve this — the same gap the sales interviews had surfaced. It looked dated, and it buried clients in configuration options they didn’t know what to do with — none of which made a site look custom. Clients still hired my manager and me anyway, because even with all those settings, Basic never closed the gap between technically customizable and looking like theirs. More choice was the wrong axis to fix.

Fewer starting points, real customization

So Themes made the opposite bet: three out-of-the-box templates instead of an open-ended layout system, with a settings layer underneath — color scheme, layout, logo, font, and advanced settings — for clients to make one of those three feel like theirs. Fewer starting points, but enough real personalization on top of each one that a client’s site didn’t read as a template with their logo dropped in.

Diagram comparing Current Elevate (hardcoded sections, no logo upload, no color customization, cloning as the only real option) against Theme-based Elevate, what shipped (one theme live site-wide, layout and logo, fonts and a 4-color palette, toggleable sections, mobile responsive), with a third future state, Template-Based Elevate, sketched as not yet built

Mapping the shift — from Elevate's current, hardcoded sections to the theme-based system that shipped, with a further template-based future already sketched out but not yet built

Polishing the three templates

Sales gave us a shortcut early on: which existing client sites did they show prospects to close a deal? We’d designed over 100 LMS sites by then, so that one question did a lot of the work of narrowing down which layouts were worth turning into templates. From there, object mapping, wireframe concepts, and a gap analysis against competitor products turned into polished Figma designs for each template, with several rounds of iteration as the concepts firmed up.

Designing the theme manager

In parallel, I designed the admin side: the theme manager clients would actually use — general settings for structure (name, layout, menu, logo) and advanced settings for styling (colors, fonts, footer, and a custom CSS tab). That CSS tab mattered most: it let a client push past the three templates entirely, instead of settling for one of three shapes with their logo dropped in. It went through 3 iterations, shaped by sprint reviews with the PM and developer.

Flow diagram of the theme setup workflow: Name the theme, Logo, Palette, Layout, Confirm — five steps in sequence, with Advanced Settings branching off afterward as a separate tuning layer for hero banner, color, font, and footer settings

The theme setup flow — name, logo, palette, layout, confirm — with advanced settings kept as a separate layer clients could reach for later, not a required step

Template A wireframe: header with logo and search, a full-width navigation bar, a left sidebar with login, widget menu group, and widget components, a main content area with one wide and three small widgets, and a footer

Template A — sidebar navigation, login, and widgets alongside the main content

Template B wireframe: a pre-header row with search and login, a header with logo and a wide navigation component, a full-width main content area with one wide and three small widgets, and a footer

Template B — a pre-header strip and centered navigation, no sidebar

Template C wireframe: header with logo and search, a tall left sidebar combining navigation and login plus a widget, a wider main content area with one large and three small widgets, and a footer

Template C — navigation and login merged into one sidebar block, main content widened

Auditing the settings layer

Before the theme manager’s settings could be finalized, I audited every individual color and style setting against the templates themselves — what it controlled, which region of the page it lived in, and whether it actually needed its own control at all. A good number of settings turned out to be redundant: hover states that should just read darker or lighter rather than carrying their own color picker, or values that could safely assume another setting instead of duplicating it.

What got cut

Consolidating those settings mattered for the same reason three templates beat an open-ended layout system: fewer knobs, but the ones that remained meant something. Button hover text, dropdown hover backgrounds, and menu item hover states all got cut from the settings list this way — kept as automatic behavior instead of one more decision a client had to make.

Table excerpt from the settings audit: Button hover text color and Dropdown hover background marked Removed because they should assume another setting's value; Widget background, Header background, and Custom CSS marked Kept

A working excerpt from the settings audit — not the final shipped spec, but the process of deciding what a client actually needed to control versus what the system could just infer

From Figma to code

The templates weren’t handed off to build — I built them myself in Visual Studio Code. I met with our senior LMS developer to scope how theme settings would actually reach a template: how color, font, and layout choices would be assigned through variable tags across the CSS and the Blade files (Cadmium’s client websites all ran on Laravel), and how I’d ship the finished work through git.

Testing before shipping

Before anything went out, I tested every template against my own Figma designs — checking that colors, fonts, and layout choices matched what I’d specified — and confirmed each one held up responsively across desktop, tablet, and mobile before it shipped.

Website Designer admin screen, General tab, showing Layout Options (theme name, description, layout dropdown), Menu Options (primary, secondary, and utility menus), and a logo image uploader, next to a live preview of the client site

The General tab, live in production — theme name, layout, menu structure, and logo

Website Designer admin screen, CSS tab, showing a custom stylesheet override code editor with CSS variables for primary and secondary color, background, and border radius

The CSS tab — a full stylesheet override, for clients who wanted to push past the settings above

Outcome

Elevate Themes shipped: three templates and a self-serve theme manager, live in production. Custom site builds dropped from 30 in the 13 months before launch to 6 in the first 8 months of 2026, cutting my manager’s and my manual workload by roughly two-thirds. From there, I worked with sales and client success to price Themes as its own product line — Elevate’s first time charging for site design separately from a flat contract.

“I especially love how they let me match our event color schemes, keeping our pages cohesive with our in-person events while still standing out from our regular catalog.” — a client, in feedback shared with our product manager

What I’d do differently

Sales interviews stood in for talking to clients directly — a shortcut taken because we were in a rush to ship, and the business overall skipped user interviews as a result. Sales knew the market, but they’re still a step removed from what a client actually needs. I’d push harder for direct interviews next time, even under deadline pressure, instead of letting sales feedback stand in for it.

Why this mattered

Landing on three curated templates instead of an open-ended settings list — and shipping the code myself — is what turned this from a service two designers kept absorbing for free into a product Elevate could actually sell.