Pixwave is the marketing site of a social-media agency that plans, produces and manages branded content for the feeds of consumer brands and creators, and it is aimed squarely at prospective clients sizing that agency up against its rivals. Around the core service pitch sit an about page, case-study write-ups, an editorial blog and a contact route, all published from Framer.
The palette stays close to monochrome: a warm off-white ground, charcoal and black for type and buttons, pale grey card fills, and only small accents of colour held back for metric figures and status marks. Typography rests on one geometric sans throughout, with tightly set large display headings, mid-grey body copy at a comfortable reading size, and a recurring slashed eyebrow label introducing each band. Composition is a single centred column of stacked full-width bands that alternate among centred headings, split two-column strips and bento-style grids, each separated by generous vertical space. Element shapes are uniformly soft: pill-shaped buttons, deeply rounded cards and panels that float clear of the page background, with hairline dividers rather than hard frames.
7 unique layout pages to build
Nothing here is a judgement call — every rating comes from thresholds over the numbers above.
2 collections, each with a single dynamic segment in its route. Collections like these map almost one-to-one onto document types in Sanity or collections in Payload, and the route patterns themselves tell us what the slug fields and templates need to be.
25 distinct section types across 37 instances is a wide surface, and it is wide rather than deep — 20 of those types appear exactly once. A section used once still needs a schema, a component and a round of visual QA, so a long tail costs nearly as much as a reused set of the same size while giving back none of the leverage. 2 types appear both as free-standing page-builder blocks and inside collection template pages, so those components have to accept content from two different sources — worth deciding deliberately at the start rather than retrofitting later.
3 typefaces across the type system — 3 families licensed or self-hosted and in need of a licence check before they move, and next/font handles it with no layout shift. The media library is 57 unique images, with 7 videos alongside them. The only real task here is re-hosting: the assets are served from framerusercontent.com, and those URLs stop working when the site is unpublished.
2 forms collect input, and none of them post to an endpoint of their own — Framer's built-in submission handler takes them. That means there is nothing to point the new site at, and the new site has to bring its own handler, spam protection and notification routing, plus an export of the submissions already collected.
13 published documents across 2 collections. That fits into a single automated migration pass with room to review every record by hand afterwards, and it keeps the content freeze short.
2 collections make up the CMS side of this site. Each is rendered through a single collection template page that every document in it reuses, so the documents below differ in content, not in layout.
The 7 unique layout pages are built from 25 distinct section types used 37 times in total: 5 types appear more than once, 20 appear exactly once, 2 are used both as page-builder blocks and inside collection template pages, and 5 exist only inside a collection template page.
Green bars are reused types. Grey bars are the long tail.
All 7 unique layout pages, top to bottom, as the sections each is built from. Globals are marked G — they are authored once and reused everywhere.
2 sections are shared rather than placed per page. They wrap every page-builder page and both collection template pages, so each is authored once and reused everywhere.
Sticky top navigation bar: Pixwave logo on the left, Home / About us / Case studies / Blogs links in the centre and a black "Book A call" pill button on the right.
Dark-on-light site footer: Pixwave logo with a short blurb and newsletter email + Subscribe form, then Main Pages, Follow us and Other Information link columns, with a copyright bar underneath.
2 distinct forms collect input on this site, listed below with the fields each one submits.
Everything the pages load: the images and video behind the layouts, and the font families the type is set in.
That accessibility and SEO debt is copied into the new site verbatim unless it is addressed. The migration is the cheapest moment to fix it — but writing alt text is manual content work.
3 families licensed or self-hosted and in need of a licence check before they move, and next/font handles it with no layout shift.
Each one fired from a rule over the counts above — none of them is a hunch.
2 of the 2 forms on this site post to Framer's built-in handler — there is no external endpoint to point the new site at. Plan for: a form handler, spam protection, notification routing, and an export of existing submissions before the Framer subscription lapses.
All 57 images are served from framerusercontent.com. Those URLs stop working when the site is unpublished. Plan for: re-hosting assets into the new CMS as part of the content migration, not after it — this is automated by our migration tooling, but it has to happen before the old site is switched off.
That accessibility and SEO debt will be copied into the new site verbatim unless it is addressed. Plan for: the migration is the cheapest moment to fix it, but writing alt text is manual content work and should be scheduled as such.
They appear both as page-builder blocks and inside collection template pages. Plan for: components designed to take either author-picked content or CMS-referenced content, decided before they are built rather than retrofitted.
With 13 published documents, fields that exist in Framer but are not rendered by any template are invisible to this analysis. Plan for: a short review of the source field list against the proposed schema before content migration starts.
Route patterns are stable and map one-to-one, so this is bookkeeping rather than a problem — but it is a launch blocker if it is skipped.
All 18 published pages are split into 5 page-builder pages and 2 collection template pages — 7 unique layout pages in all.
The 57 unique images and 7 videos are pulled off the source CDN with their metadata, along with the 3 font families the site is set in.
The content model is derived from the 2 collection template pages and the page structures first, then the 13 collection documents and the content of all 18 pages are extracted against it.
A component is generated for each of the 25 section types, the 2 shared globals and the 2 forms.
The target project is generated from those schemas and components, and seeded with the extracted content and assets.
The analysis above was produced by our open pipeline, and the migration itself has open tooling too. If you want to see the shape of the output before talking to anyone:
FocusReactive is a Next.js and headless-CMS migration agency. We move enterprise sites off legacy monoliths and visual builders — Webflow, Framer, WordPress, AEM — onto Sanity, Payload CMS, Storyblok and MedusaJS, and we do it without losing traffic, rankings or a publishing day.