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. This setup made content updates slow, deployments risky, and collaboration between marketing and engineering teams difficult. The site included 258 published articles, 19 custom content block types, 73 authors, case studies, comparison pages, integration documentation, and interactive marketing tools. Every content change required developer involvement. The EditorJS content format was not compatible with modern headless CMS workflows. At the same time, performance was limited by server-rendered PHP templates with no edge caching or static generation.

Our Solution

We migrated the entire platform to a headless architecture using Sanity CMS v5 as the content backend and a Next.js 16 frontend. The monorepo structure cleanly separates Sanity Studio and the web application. We designed 13 document types and 20+ reusable page builder blocks to support scalable content creation. We developed custom migration tooling to convert all EditorJS content, including 19 block types such as grids, tables, factoids, feedback widgets, and embedded videos, into Sanity’s Portable Text format while preserving all existing content. The marketing team can now build and publish pages directly in Sanity Studio using MCP with Claude AI, without developer involvement. All changes are deployed instantly via Vercel.

What We Built

01Block-Based Page Builder

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

02EditorJS → Portable Text Migration

Custom migration pipeline converting 258 articles with 19 EditorJS block types including grids, tables, factoids, feedback widgets, videos, and embeds into Sanity Portable Text. Achieved zero content loss across 440+ documents, 73 authors, 8 categories, and 30 tags.

03Live Preview & Draft Mode

Sanity Presentation tool integrated with Next.js draft mode. Editors can preview unpublished changes in real time directly in Studio and switch instantly between draft and published versions.

04A/B Test Reliability Calculator

Interactive statistical tool for marketers to validate experiment results. Calculates statistical significance, confidence intervals, and required sample sizes. Serves as both a utility and a lead generation tool.

05QR Code Generator

Server-side API for generating QR codes in SVG and PNG formats across 6 sizes from 75px to 450px. Supports bulk ZIP downloads. MD5-based caching prevents duplicate generation. Files are stored in S3 with shareable links.

06UTM Parameter Generator

Tool for building campaign tracking URLs with correctly formatted UTM parameters. Includes input validation, instant URL generation, and integration with analytics workflows.

07HubSpot CRM Integration

Contact form submissions are synced directly to HubSpot via API. Automatically creates contacts, links deals, and triggers marketing automation flows. Uses Zod validation on both client and server.

08Structured Data & SEO

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

09Case Studies & Comparisons

Structured content types for case studies with metrics and testimonials, and comparison pages with feature matrices and side-by-side analysis. Fully editable in Sanity.

10GSAP & Lottie Animations

Advanced motion design using GSAP for scroll animations, transitions, and micro-interactions. Lottie/dotLottie used for complex vector animations with optimized performance.

11Sanity Studio Customization

Custom Studio interface with singleton document patterns, ordered category management, extended Portable Text with custom marks and annotations, and image hotspot/crop support.

12Monorepo Architecture

Scalable monorepo structure built with Turborepo, featuring shared TypeScript configuration and unified Sanity schemas accessible from both Studio and the web application. Supports synchronized deployments and environment-specific setups for development, staging, and production.

Results

258
articles migrated
20+
page builder blocks
19
EditorJS types converted
0
content lost during migration
73
authors preserved
0
dev involvement for content
← All Projects