Skip to content

🌸 M365 Licensing Reading Rooms

Status: Planning — not yet implemented
Pattern: 3-column Stripe Docs layout (same as blog + study guides)
Scope: 50 individual licensing pages + new /licensing-docs/ landing page


Vision

Microsoft 365 licensing is one of the most-searched topics on the site. We have 50 detailed licensing pages covering every plan from Business Basic to E7, Dynamics 365, Power Platform, Copilot, Security add-ons, and more. They're grouped into 13 categories.

Currently these pages are: - Single-column, dark-only (glassmorphism, old tool-hero.html) - Isolated — to browse other plans you must go "← All Plans" back to the index - No cross-pollination with blogs, study guides, or tools

The goal: transform these into Licensing Reading Rooms using the same 3-column Stripe Docs pattern as blogs and study guides.


Architecture

3-Column Grid

┌──────────────┬────────────────────────────┬──────────────┐
│  LEFT (250px)│     CENTER (1fr)           │ RIGHT (280px)│
│              │                            │              │
│  Licence Nav │  Plan Page Content         │ Related      │
│  by Category │  (price, features, FAQ)    │ Tools &      │
│              │                            │ Blogs        │
│  13 categories│                           │              │
│  50 plans    │                            │ Purchase     │
│              │                            │ CTAs         │
│  Current plan│                            │              │
│  highlighted │                            │              │
└──────────────┴────────────────────────────┴──────────────┘
  • All 50 plans grouped by 13 categories
  • Collapsible category sections (like cert-nav.html pattern)
  • Current plan highlighted with indigo accent
  • Category badges with count
  • Sticky, scrollable

Categories (from content front matter plan_category):

Category Count
Enterprise 6
Business (≤300 users) 4
Security Add-ons 6
Power Platform 6
Dynamics 365 CRM 5
Dynamics 365 ERP 5
Copilot & AI 4
Teams Add-ons 3
Microsoft Viva 3
Project & Visio 3
Windows & Dev 3
Frontline 1
Education 1

Center — Plan Page Content

The existing content stays (price block, badges, quick links, markdown guide, related blogs, disclaimer). But needs: - Replace tool-hero.htmltool-header.html (Zen header) - Add zen-migrated class to body - Migrate licensing.css from glassmorphism → Zen tokens (same 5-trap process as tools) - Breadcrumb updated to fit reading room pattern

  • Related tools: Licence Picker, Licensing Simplifier, ROI Calculator
  • Related blog posts (auto-matched by plan name — template already does this)
  • Compare with: Links to other plans in same category
  • Study guides: If plan relates to a cert (e.g., Security add-ons → SC-300)
  • Official links: Microsoft pricing page, M365 Maps
  • Keep minimal — "everything earns its place"

New Landing Page: /licensing-docs/

Similar to /study-guides/ — a standalone entry point with: - Hero with search - Category pills for filtering - Card grid showing all 50 plans with price + tagline - Grouped by category - Independent from the Licensing Simplifier tool (which stays at /licensing/)

URL structure: - /licensing-docs/ — Landing page (new) - /licensing/{plan-id}/ — Individual plan pages (existing, enhanced)


Current State (What Needs Changing)

Template: layouts/licensing/single.html

  • ✅ Rebuilt with 3-column zt-reading zt-reading--lic grid
  • Breadcrumb → h1 → price/badges → meta (verified + read time) → inline TOC → quick links → content → related blogs → disclaimer
  • No tool-hero.html — direct header in template (like cert-tracker pattern)
  • Product JSON-LD + FAQPage JSON-LD preserved

CSS: static/css/licensing.css

  • ✅ Was already 80% Zen-migrated from Z4/Z5 (0 rgba, 0 backdrop-filter, 0 :root)
  • 28 remaining hardcodes replaced: #334155var(--border-emphasis), #475569var(--text-muted), #1e293bvar(--border), color-mixvar(--accent-subtle)
  • 5,742 chars of dead .lic-single-* CSS removed (22% reduction)

Body class in baseof.html

  • ✅ Already had zen-migrated from Z4. Added licensing-docs section too.

New files created:

  • licence-nav.html — Left sidebar (50 plans, 13 hardcoded categories, collapsible, prices)
  • licence-companion.html — Right sidebar (tools, compare links, official links, blogs, CTAs)
  • layouts/licensing-docs/list.html — Landing page (hero, search, category pills, card grid)
  • content/licensing-docs/_index.md — Landing page content

Implementation Progress

Completed 27 Apr 2026 — Deployed commit 7b67d8e

Step Status Notes
Read all Zen Design System docs All 10 docs read (philosophy → licensing-reading-rooms)
Study blog + study guide 3-column pattern blog/single.html, cert-tracker/single.html, zt-reading.css, sg-companion.html
Migrate licensing.css to Zen tokens 28 replacements + 5.7KB dead CSS removed
Replace tool-hero.html → direct header Breadcrumb + h1 + price block + badges (no hero partial needed)
Add zen-migrated to baseof.html Already present from Z4. Added licensing-docs section too.
Create licence-nav.html partial 13 categories, hardcoded order, collapsible details, current highlighted, price shown
Create licence-companion.html partial Related tools, compare links (same category), official links, blog posts, CTAs
Rebuild single.html with 3-column grid zt-reading grid + mobile details fallback + inline TOC + reading time
Add zt-reading.css to licensing singles baseof.html condition: (and (eq .Section "licensing") .IsPage)
Create /licensing-docs/ landing page Card grid, search, category pills, CollectionPage JSON-LD
QA: Playwright light+dark, desktop+mobile 18 screenshots, all verified
Fix QA issues FAQ dedup, nav link fix, prose width verified, badge overflow
Polish round Reading time, inline TOC, category pills, dead CSS cleanup, verified date
Hugo build: 0 errors 1878 pages
Deploy Commit 7b67d8e pushed

Lessons Learned (for future 3-column migrations)

1. The Reusable Pattern

Every 3-column reading room follows the same recipe: 1. Add section to baseof.html CSS condition (line 59) for zt-reading.css 2. Add section to baseof.html body class (line 78) for zen-migrated 3. Create left nav partial (model on cert-nav.html or licence-nav.html) 4. Create companion partial (model on sg-companion.html or licence-companion.html) 5. Build single.html with <div class="zt-reading zt-reading--{modifier}"> 6. Add CSS to zt-reading.css for section-specific styles (nav, badges, etc.) 7. Mobile fallback: <details class="zt-toc-mobile"> inside the article

2. FAQ Duplication Trap

If plan/content pages have FAQ in BOTH markdown body AND front matter faq:, the template will render two FAQ sections. Check for this pattern: grep "## Frequently" content/{section}/*.md. If all pages have inline FAQ, skip the template-rendered FAQ and use front matter only for JSON-LD SEO.

3. CSS Was Already 80% Migrated

The Z4/Z5 batch migration passes had already fixed the heavy glassmorphism patterns (rgba white text, backdrop-filter, :root blocks). The remaining work was mostly Tailwind slate hexcodes (#334155, #475569, #1e293b) and color-mix() — about 30 replacements total. Check with trap detection commands before assuming a full migration is needed.

4. Dead CSS Cleanup Saves Significant Space

After rebuilding templates with new class names (zt-lic-*), the old class definitions (.lic-single-*) became dead weight. 5.7KB removed (22% of file). Always grep for orphaned classes after template rewrites.

The left sidebar nav header should link to the DOCS HUB (e.g., /licensing-docs/), not the complementary TOOL (e.g., /licensing/). The tool gets a secondary link: "Open Licensing Simplifier →". This keeps the information architecture clean — docs hub is the home, tool is a utility.

6. Prose Width Is Already Handled

zt-reading.css constrains prose elements (p, ul, ol, h2, h3, h4, h5) to max-width: 720px via .zt-reading-body. Tables, code blocks, images, and diagrams stay full-width. No extra work needed — just wrap .Content in <div class="zt-reading-body">.

7. Landing Page Quick-Jump Pills

Category-heavy landing pages (13 categories, 50+ items) benefit from quick-jump anchor pills below the search box. On mobile, make them horizontally scrollable with overflow-x: auto; flex-wrap: nowrap.


Key Reference Files

File Purpose
layouts/blog/single.html Blog 3-column template (gold standard)
layouts/cert-tracker/single.html Study guide 3-column template
layouts/licensing/single.html ✅ Licensing 3-column template (new)
layouts/licensing-docs/list.html ✅ Licensing landing page (new)
layouts/partials/licence-nav.html ✅ Left sidebar nav (new)
layouts/partials/licence-companion.html ✅ Right companion (new)
layouts/partials/cert-nav.html Left sidebar nav (reference pattern)
static/css/zt-reading.css All 3-column CSS (sidebar, companion, responsive)
static/css/licensing.css Licensing CSS (cleaned)
content/licensing/*.md 50 plan pages with front matter
content/licensing-docs/_index.md Landing page content