B2B cosmetology · Content
B2B blog redesign
Expert articles rewritten to be readable and sourced — and a CMS the editors can sustain them from.
The problem
The blog carried real expertise — articles written by the brand's own cosmetologist — but the format buried it. Long unbroken paragraphs, no way to jump to a relevant section, no sourcing behind the claims. Behind the scenes it was worse: every article went through a single freeform HTML box, so formatting broke constantly and nothing could be reused. Expertise the company was already paying for wasn't reaching the reader.
What we built
Both sides of the problem: how an article reads, and how it gets published. On the page, a navigable structure with real heading hierarchy, advice organized by the variables that drive a recommendation, and numbered references. Behind it, a structured content model replacing the WYSIWYG editor, plus a script that turns the writer's Google Doc straight into a draft post.
Before / after
Same article, same author. The old version is a single wall of text with a manufacturer ranking and no citations. The new version opens with a table of contents and a disclaimer, and reorganizes the advice around how a reader actually decides — by age, by zone, by ingredient — backed by numbered sources.
Before

After

What it changed
The expertise is now findable on the page
A table of contents and real heading hierarchy mean a reader jumps to the section that answers their question instead of scrolling a single block of text.
Claims carry sources
Statements about ingredients and results link to the actual studies, which is what a professional audience checks before trusting a distributor.
Publishing no longer depends on hand-written HTML
Editors compose posts from reusable blocks, and an article arrives from Google Docs as a draft automatically — removing the copy-paste step and the formatting loss that came with it.
How it worksthe engineering detail
Written for the person your CTO forwards this to.
Structured content model, not a text box
Replaced the Summernote WYSIWYG editor with a ContentBlock model — text, image, video, and callout blocks, with rich text (including tables) authored in CKEditor5. Content stays structured enough to reuse later instead of being frozen into markup.
Bootstrap 3 → 5 migration
Migrated the site's front-end framework, updating deprecated markup along the way — the video embed block and the news carousel's data attributes both needed rework to match Bootstrap 5's conventions.
Scoped typography
Gave the blog its own type and color system inside .post-content, without touching the site-wide UI everywhere else.
Google Docs → draft, automatically
A script pulls an article straight from a Google Doc and creates a draft post in the admin panel, preserving structure that manual pasting used to destroy.
CDN for media
Blog media is served from a CDN provisioned separately from object storage, for faster asset delivery without changing how editors upload images.
Patterns — Structured content model · Scoped design tokens · Import pipeline
Stack