Maestra.io

Maestra.io

Maestra (CDP Platform)Headless CMS migration — Laravel to Sanity + Next.js

Year
2026
Stack
Next.js 16Sanity CMSTypeScriptGSAPHubSpot APIS3
Live
maestra.io

The Challenge

Maestra is a marketing automation and CDP platform competing with Marketo, HubSpot, and Klaviyo. Their marketing site ran on a monolithic Laravel 9 stack with Vue 3, Filament admin, and EditorJS for content — a setup that made content updates slow, deployments risky, and collaboration between marketing and engineering painful. The site housed 258 published articles with 19 custom block types, 73 authors, case studies, comparison pages, integration docs, and interactive marketing tools. Every content change required a developer. The EditorJS content format was incompatible with modern headless CMS workflows, and the site's performance suffered from server-rendered PHP templates with no edge caching or static generation.

Our Solution

We migrated the entire platform to a headless architecture: Sanity CMS v5 as the content backend with a Next.js 16 frontend. The monorepo structure separates Sanity Studio and the web app cleanly. We designed 13 document types and 20+ reusable page builder blocks, wrote custom migration tooling to convert all EditorJS content (19 block types including grids, tables, factoids, feedback widgets, and embedded videos) to Sanity's Portable Text format while preserving every piece of content. The marketing team now builds and publishes pages in Sanity Studio MCP chatting with Claude AI, zero developer involvement, and instant deployments via Vercel.

What We Built

01Block-Based Page Builder

20+ reusable content blocks: hero sections, feature cards, image+text layouts, video embeds, stats grids, testimonial carousels, case study showcases, FAQ sections with schema.org markup, comparison tables, pricing tables, integration showcases, security blocks, logo carousels, CTA blocks, badges, and interactive elements.

02EditorJS → Portable Text Migration

Custom migration pipeline converting 258 articles with 19 EditorJS block types (grids, tables, factoids, feedback, videos, embeds) to Sanity's structured Portable Text format. Zero content loss across 440+ documents, 73 authors, 8 categories, and 30 tags.

03Live Preview & Draft Mode

Sanity Presentation tool integration with Next.js draft mode. Content editors see real-time previews of unpublished changes directly in Studio. Pre-release content testing before going live, with instant toggle between draft and published states.

04A/B Test Reliability Calculator

Interactive statistical calculator built for marketers to validate experiment results. Computes statistical significance, confidence intervals, and minimum sample sizes — a lead-gen tool that demonstrates Maestra's analytics expertise.

05QR Code Generator

Server-side API generating multi-format QR codes (SVG + PNG) in 6 sizes (75px–450px). Creates ZIP bundles for bulk download. MD5 hash caching prevents duplicate generation. Uploads to S3 for persistent sharing links.

06UTM Parameter Generator

Campaign tracking URL builder that constructs properly formatted UTM parameters for marketing attribution. Validates inputs, generates copy-ready URLs, and integrates with Maestra's analytics tracking.

07HubSpot CRM Integration

Contact form submissions sync directly to HubSpot via API. Creates contacts, associates deals, and triggers marketing automation workflows. Form validation with Zod schemas on both client and server.

08Structured Data & SEO

Automatic JSON-LD generation for Organization, Website, and FAQ schemas. Server-side meta tag rendering for all pages. Open Graph and Twitter Card support. URL structure preserved from Laravel migration with 301 redirects.

09Case Studies & Comparisons

Dedicated content types for customer case studies (with metrics and testimonials) and competitive comparison pages (feature matrices, side-by-side analysis). Both editable in Sanity with structured schemas.

10GSAP & Lottie Animations

Rich motion design throughout the marketing site. GSAP-powered scroll animations, page transitions, and micro-interactions. Lottie/dotLottie for complex vector animations without performance cost.

11Sanity Studio Customization

Custom Studio UI with singleton document patterns for shared content (logos, recognition badges), ordered category management, portable text with custom marks and annotations, and image hotspot/crop support.

12Monorepo Architecture

Turborepo-ready project structure with shared TypeScript config, Sanity schemas accessible from both Studio and web app, synchronized deployments, and environment-specific configurations for development, staging, and production.

Results

258
articles migrated
20+
page builder blocks
19
EditorJS types converted
0
content lost in migration
73
authors preserved
0
dev needed for content
← All Projects
Maestra.io — Maestra (CDP Platform) | WhyNotGlobal