Nexxspan CMS workflow
Nexxspan compiled preview
This is a small migration pass: homepage, inferred navigation, footer/legal links, top-level product category cards, theme tokens, and obvious homepage assets only.
- Client
- Nexxspan
- Source mode
- Local Legacy Export
- Future source
- NetSuite/File Cabinet
- Current stage
- Compile
- Runtime model
- Static Published Snapshot
Migration compile status
Compiled preview succeeded
This preview is not automatically live production. Publishing remains a future handoff step.
JSON accounted
0/0
Pages
1
Sections
5
Categories
0
Products deferred
0
Warnings
- This adapter is temporary migration support and should be replaced by NetSuite-derived normalized source data.
- Product detail pages are intentionally not compiled in this pass.
Errors
No errors.
Draft editing
Editing Mode Coming Next
Users will edit draft content here through controlled fields.
Changes will be saved as drafts first, not pushed directly live.
Publishing will validate the draft, generate a published snapshot, and hand it off to the client website.
In production, NetSuite/File Cabinet will remain the source of truth for source-owned records and assets.
Publish action placeholder
Snapshot publishing is not wired yet
This panel uses future CMS language without performing persistence, GitHub writes, Netlify deploys, or production publishes.
- Last Published
- Not connected yet
- Publish Target
- Nexxspan website snapshot
- Current Handoff
- /nexxspan/handoff/nexxspan.published.snapshot.json
Normalized source summary
Source pages
1
Source categories
0
Source products
0
Source assets
3
Rendered preview
The compiled preview renders through the same registry as demo clients, using only generic components. This is draft validation language, not a production publish.
Nexxspan
Innovative Solutions for Patient Spaces
Modular infrastructure for adaptable patient spaces.
Explore Nexxspan
Explore Nexxspan categories
This first pass uses top-level legacy category records only.
Build a validated Nexxspan snapshot
This preview compiles a small migration subset from legacy source data.
Compatibility and gap report
Missing fields
- Explicit NetSuite source ownership per field
- Stable slugs for all migrated pages
- Explicit category-to-product relationship records
Missing product IDs
No missing product identifiers.
Missing SEO metadata
- Homepage SEO title/description confirmation
- SEO metadata for product, category, legal, and info pages
Missing alt text
- Most legacy image assets do not have source-owned alt text.
Theme gaps
- Confirmed primary/accent colors
- Typography scale
- Spacing and radius tokens
nexxspan-site tasks
- Replace nexxspan-site runtime JSON reads with compiled snapshot loading.
- Map image/document references to published static assets.
- Replace legacy page-specific rendering with registered generic sections where possible.
Source file accounting
{
"usedFiles": [],
"deferredFiles": [],
"ignoredFiles": [],
"frontendShapedLegacyFiles": []
}Website Handoff: Published Snapshot
nexxspan.published.snapshot.json
This JSON is the static contract that nexxspan-site consumes. The current handoff route is /nexxspan/handoff/nexxspan.published.snapshot.json. In production, Feasure CMS will write this to the client website repository or publish pipeline. For now, it is manually copied and consumed as generated local content.
nexxspan-site implementation tasks
- Add src/content/generated/nexxspan.published.snapshot.json to nexxspan-site.
- Add a snapshot loader that validates or narrows the snapshot shape before rendering.
- Render homepage sections through a component registry keyed by section.component.
- Map logoNav, imageHero, categoryCardGrid, cta, and footer to existing Nexxspan visual components where possible.
- Keep static pages and product detail pages outside this snapshot untouched for now.
- Replace Feasure local source asset URLs with nexxspan-site public/static asset paths during handoff.
Components required
- logoNav
- imageHero
- categoryCardGrid
- cta
- footer
Routes required
- /
Asset handling notes
- The snapshot currently references local Feasure handoff asset URLs for preview.
- nexxspan-site should copy only referenced assets needed for this minimal subset into its public/static content area.
- Use snapshot.assets as the source of labels, URLs, source files, and available alt text.
- Missing source-owned alt text is tracked in the compatibility report and should be improved later.
Theme tokens used
{
"primaryColor": "#f58220",
"accentColor": "#1f2933",
"logoAssetId": "logo-main",
"faviconAssetId": "favicon",
"stylePreset": "technical",
"cornerRadius": "medium"
}Copyable nexxspan-site implementation prompt
You are working in the separate nexxspan-site project. Use the Feasure CMS handoff snapshot as a static content contract. Add: - src/content/generated/nexxspan.published.snapshot.json - a content loader for the snapshot - TypeScript types and/or Zod validation for the snapshot shape - a homepage renderer that iterates pages[0].sections and dispatches by section.component Render these component names from the snapshot: - logoNav - imageHero - categoryCardGrid - cta - footer Required route coverage: - / Implementation constraints: - Preserve the current Nexxspan visual style as much as possible. - Use generic renderer components only; do not create HeadwallSection, RailSection, TadSection, or other product-specific renderer components. - Do not redesign the current site. - Keep static pages and product detail pages not included in the snapshot untouched for now. - Treat snapshot.metadata.theme, snapshot.metadata.navigation, and snapshot.metadata.footerLinks as the source of theme/nav/footer metadata for this subset. - Handle assets from snapshot.assets. Copy referenced assets into nexxspan-site public/static content as needed and update URLs if required. Initial implementation task list: - Add src/content/generated/nexxspan.published.snapshot.json to nexxspan-site. - Add a snapshot loader that validates or narrows the snapshot shape before rendering. - Render homepage sections through a component registry keyed by section.component. - Map logoNav, imageHero, categoryCardGrid, cta, and footer to existing Nexxspan visual components where possible. - Keep static pages and product detail pages outside this snapshot untouched for now. - Replace Feasure local source asset URLs with nexxspan-site public/static asset paths during handoff.
Handoff snapshot preview
{
"siteId": "nexxspan",
"siteName": "Nexxspan",
"version": "0.2.0-nexxspan-preview",
"status": "published",
"publishedAt": null,
"metadata": {
"description": "Minimal Nexxspan preview compiled from a quarantined legacy export.",
"sourceSystem": "legacy_public_export",
"designPreset": "technical",
"theme": {
"primaryColor": "#f58220",
"accentColor": "#1f2933",
"logoAssetId": "logo-main",
"faviconAssetId": "favicon",
"stylePreset": "technical",
"cornerRadius": "medium"
},
"navigation": [
{
"id": "home",
"label": "Home",
"href": "/",
"source": "inferred"
},
{
"id": "about",
"label": "About",
"href": "/about",
"source": "inferred"
},
{
"id": "careers",
"label": "Careers",
"href": "/careers",
"source": "inferred"
},
{
"id": "contact",
"label": "Contact",
"href": "/contact",
"source": "inferred"
}
],
"footerLinks": [],
"scope": "homepage/navigation/footer/category-cards only",
"handoff": {
"filename": "nexxspan.published.snapshot.json",
"status": "local handoff preview",
"source": "Feasure CMS Nexxspan legacy migration compile preview",
"scope": "homepage/navigation/footer/category-cards/theme/assets only"
}
},
"pages": [
{
"id": "home",
"slug": "/",
"title": "Home",
"seo": {
"title": "Nexxspan",
"description": "Modular infrastructure for adaptable patient spaces."
},
"sections": [
{
"id": "nexxspan-nav",
"component": "logoNav",
"props": {
"siteName": "Nexxspan",
"logoUrl": "/clients/nexxspan/source-assets/img/logo.png",
"logoAlt": "Nexxspan logo",
"items": [
{
"label": "Home",
"href": "/"
},
{
"label": "About",
"href": "/about"
},
{
"label": "Careers",
"href": "/careers"
},
{
"label": "Contact",
"href": "/contact"
}
]
}
},
{
"id": "nexxspan-hero",
"component": "imageHero",
"props": {
"eyebrow": "Nexxspan",
"headline": "Innovative Solutions for Patient Spaces",
"body": "Modular infrastructure for adaptable patient spaces.",
"imageUrl": "/clients/nexxspan/source-assets/Home/HomePage/images/Heroes/HomePageHero1.jpg",
"imageAlt": "Nexxspan homepage hero image",
"primaryCtaLabel": "Explore Nexxspan",
"primaryCtaHref": "#categories"
}
},
{
"id": "nexxspan-categories",
"component": "categoryCardGrid",
"props": {
"anchorId": "categories",
"headline": "Explore Nexxspan categories",
"body": "This first pass uses top-level legacy category records only.",
"categories": []
}
},
{
"id": "nexxspan-cta",
"component": "cta",
"props": {
"headline": "Build a validated Nexxspan snapshot",
"body": "This preview compiles a small migration subset from legacy source data.",
"primaryCtaLabel": "Review source contract",
"primaryCtaHref": "/nexxspan/source-preview"
}
},
{
"id": "nexxspan-footer",
"component": "footer",
"props": {
"siteName": "Nexxspan",
"body": "Compiled locally from a quarantined legacy source export.",
"links": []
}
}
]
}
],
"assets": [
{
"id": "logo-main",
"url": "/clients/nexxspan/source-assets/img/logo.png",
"alt": "Nexxspan logo",
"type": "image",
"label": "Nexxspan logo",
"sourceFile": "img/logo.png"
},
{
"id": "favicon",
"url": "/clients/nexxspan/source-assets/Brand/images/favicon.png",
"alt": "Nexxspan favicon",
"type": "image",
"label": "Nexxspan favicon",
"sourceFile": "Brand/images/favicon.png"
},
{
"id": "homepage-hero",
"url": "/clients/nexxspan/source-assets/Home/HomePage/images/Heroes/HomePageHero1.jpg",
"alt": "Nexxspan homepage hero image",
"type": "image",
"label": "Homepage hero image",
"sourceFile": "Home/HomePage/images/Heroes/HomePageHero1.jpg"
}
],
"products": []
}Developer Preview: generated snapshot JSON
{
"siteId": "nexxspan",
"siteName": "Nexxspan",
"version": "0.2.0-nexxspan-preview",
"status": "draft",
"publishedAt": null,
"metadata": {
"description": "Minimal Nexxspan preview compiled from a quarantined legacy export.",
"sourceSystem": "legacy_public_export",
"designPreset": "technical",
"theme": {
"primaryColor": "#f58220",
"accentColor": "#1f2933",
"logoAssetId": "logo-main",
"faviconAssetId": "favicon",
"stylePreset": "technical",
"cornerRadius": "medium"
},
"navigation": [
{
"id": "home",
"label": "Home",
"href": "/",
"source": "inferred"
},
{
"id": "about",
"label": "About",
"href": "/about",
"source": "inferred"
},
{
"id": "careers",
"label": "Careers",
"href": "/careers",
"source": "inferred"
},
{
"id": "contact",
"label": "Contact",
"href": "/contact",
"source": "inferred"
}
],
"footerLinks": [],
"scope": "homepage/navigation/footer/category-cards only"
},
"pages": [
{
"id": "home",
"slug": "/",
"title": "Home",
"seo": {
"title": "Nexxspan",
"description": "Modular infrastructure for adaptable patient spaces."
},
"sections": [
{
"id": "nexxspan-nav",
"component": "logoNav",
"props": {
"siteName": "Nexxspan",
"logoUrl": "/clients/nexxspan/source-assets/img/logo.png",
"logoAlt": "Nexxspan logo",
"items": [
{
"label": "Home",
"href": "/"
},
{
"label": "About",
"href": "/about"
},
{
"label": "Careers",
"href": "/careers"
},
{
"label": "Contact",
"href": "/contact"
}
]
}
},
{
"id": "nexxspan-hero",
"component": "imageHero",
"props": {
"eyebrow": "Nexxspan",
"headline": "Innovative Solutions for Patient Spaces",
"body": "Modular infrastructure for adaptable patient spaces.",
"imageUrl": "/clients/nexxspan/source-assets/Home/HomePage/images/Heroes/HomePageHero1.jpg",
"imageAlt": "Nexxspan homepage hero image",
"primaryCtaLabel": "Explore Nexxspan",
"primaryCtaHref": "#categories"
}
},
{
"id": "nexxspan-categories",
"component": "categoryCardGrid",
"props": {
"anchorId": "categories",
"headline": "Explore Nexxspan categories",
"body": "This first pass uses top-level legacy category records only.",
"categories": []
}
},
{
"id": "nexxspan-cta",
"component": "cta",
"props": {
"headline": "Build a validated Nexxspan snapshot",
"body": "This preview compiles a small migration subset from legacy source data.",
"primaryCtaLabel": "Review source contract",
"primaryCtaHref": "/nexxspan/source-preview"
}
},
{
"id": "nexxspan-footer",
"component": "footer",
"props": {
"siteName": "Nexxspan",
"body": "Compiled locally from a quarantined legacy source export.",
"links": []
}
}
]
}
],
"assets": [
{
"id": "logo-main",
"url": "/clients/nexxspan/source-assets/img/logo.png",
"alt": "Nexxspan logo",
"type": "image",
"label": "Nexxspan logo",
"sourceFile": "img/logo.png"
},
{
"id": "favicon",
"url": "/clients/nexxspan/source-assets/Brand/images/favicon.png",
"alt": "Nexxspan favicon",
"type": "image",
"label": "Nexxspan favicon",
"sourceFile": "Brand/images/favicon.png"
},
{
"id": "homepage-hero",
"url": "/clients/nexxspan/source-assets/Home/HomePage/images/Heroes/HomePageHero1.jpg",
"alt": "Nexxspan homepage hero image",
"type": "image",
"label": "Homepage hero image",
"sourceFile": "Home/HomePage/images/Heroes/HomePageHero1.jpg"
}
],
"products": []
}