Sanity CMS — marketing layer over NetSuite products (9 brands)
Work at Orlando Foods. Internal details and brand names anonymized where appropriate.
TL;DR
I built a Sanity CMS workspace that sits on top of NetSuite as the source of truth for products. It adds a marketing content layer where our team can prepare content across 9 brands — from social media to websites — with custom spec sheet generators, structured views for gap analysis, and a product dashboard.
Context
- NetSuite is the ERP and single source of truth for product data (SKUs, pricing, specs)
- The company operates 9 brands, each with its own marketing needs — social media, websites, SEO, optimization
- Before this, marketing content lived in scattered spreadsheets and documents with no structured way to see what was done, what was missing, or what was ready to publish
- Product spec sheets were created manually — slow, error-prone, inconsistent across brands
What I built
Marketing content layer
A structured content model in Sanity where each product from NetSuite gets a marketing overlay: descriptions, images, social copy, website content, and brand-specific fields. The NetSuite product data stays canonical — the CMS only adds what marketing needs.
Custom spec sheet generators
Built custom generators inside Sanity that produce formatted product spec sheets directly from the structured data. What used to take manual assembly now takes a few clicks — consistent formatting, correct data, ready to export.
Product views and gap analysis
Multiple views that let the team filter and group products by brand, category, completeness, and status. Incomplete fields are immediately visible — no need to open each product to find what’s missing. This makes content audits fast and prioritization obvious.
Product dashboard
A dashboard that shows product counts — total, by category, by brand, by completeness — so the team can see the state of the catalog at a glance without running reports.
What it solved
- Speed: spec sheet generation went from manual assembly to structured generation
- Visibility: one place to see all products across all 9 brands, with clear gaps
- Consistency: structured content model enforces the same fields and format across brands
- Prioritization: incomplete fields surface automatically — the team knows what to work on next