4/4
Compatible templates clearing the recipe-aware polish audit.
Theme recipe
Tactile raised panels and ledger-like rhythm for recurring services, quote funnels, memberships, and field-service notes.
faq1form-template4hero4icon-card-grid3markdown1metric-grid1step-list2testimonials1convert4educate7hook4prove2An editorial article or blog post layout with related reading and newsletter capture.
{
"schema_version": "ensemble.template-review.clone.v0",
"clone_group": "common-page-templates-v1",
"template_id": "common-blog",
"route": "/demo-sites/page-templates/blog",
"api_href": "/api/ensemble/templates/pages/common-blog?include_page=true",
"title": "Blog Template",
"description": "An editorial article or blog post layout with related reading and newsletter capture.",
"primary_goal": "blog_subscription",
"layout": {
"template": "common-blog",
"theme": "ensemble-minimal-ink",
"variant": "block"
},
"page_config": {
"surface": {
"mode": "standard",
"chrome": "theme",
"width": "content",
"min_height": "content"
},
"appearance": {
"preset": "block",
"allowed_presets": [
"shadcn",
"bento",
"glassmorphic",
"elevated",
"block",
"dashboard",
"neumorphic"
],
"density": "comfortable",
"motion": "subtle"
}
},
"slot_model": [
{
"slot": "blog_header",
"label": "Blog Header",
"block_id": "common-blog-hero",
"block_type": "hero",
"required": true,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
],
"editable_field_count": 7,
"role": "hook",
"clone_priority": 1,
"summary": "7 editable fields on hero for hook."
},
{
"slot": "article_body",
"label": "Article Body",
"block_id": "common-blog-article_body",
"block_type": "markdown",
"required": true,
"editable_fields": [
"eyebrow",
"lede",
"content",
"callout",
"actions",
"prose_size",
"tone"
],
"editable_field_count": 7,
"role": "educate",
"clone_priority": 2,
"summary": "7 editable fields on markdown for educate."
},
{
"slot": "related_posts",
"label": "Related Posts",
"block_id": "common-blog-related_posts",
"block_type": "icon-card-grid",
"required": true,
"editable_fields": [
"title",
"description",
"cards",
"columns",
"layout"
],
"editable_field_count": 5,
"role": "educate",
"clone_priority": 3,
"summary": "5 editable fields on icon-card-grid for educate."
},
{
"slot": "newsletter_capture",
"label": "Newsletter Capture",
"block_id": "common-blog-newsletter_capture",
"block_type": "form-template",
"required": true,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
],
"editable_field_count": 6,
"role": "convert",
"clone_priority": 4,
"summary": "6 editable fields on form-template for convert."
}
],
"slot_summary": {
"slot_count": 4,
"editable_field_count": 25,
"roles": [
"hook",
"educate",
"convert"
]
},
"compatible_recipes": [
"minimal-ink",
"editorial-luxury",
"polished-saas-crisp",
"tactile-service-ledger",
"regulated-professional"
],
"compatible_themes": [
"ensemble-daylight",
"ensemble-minimal-ink",
"ensemble-ops-dark",
"ensemble-foundry-lab",
"cloud-elephants-deep-sky",
"cloud-elephants-aqua-operator",
"cloud-elephants-coral-launch",
"cloud-elephants-ink-mist"
],
"seo_model": {
"required_fields": [
"title",
"description",
"canonical_url",
"open_graph.title",
"open_graph.description",
"open_graph.image"
],
"social_preview_fields": [
"title",
"description",
"image",
"image_alt",
"site_name",
"locale",
"twitter_card"
],
"structured_data_policy": "explicit-json-ld-only",
"suggested_json_ld_types": [
"BlogPosting",
"Article",
"BreadcrumbList"
]
},
"cms_usage": {
"replace_placeholders": true,
"review_required_before_publish": true,
"safe_for_static_export": true,
"safe_for_wordpress_snapshot": true
},
"polish_audit": {
"protocol": "ensemble.template-polish.v0",
"status": "ready",
"score": 100,
"ready_count": 7,
"dimension_count": 7,
"dimensions": [
{
"id": "composition-ready",
"label": "CMS composition",
"status": "ready",
"evidence": [
"4 editable slots",
"4 cloneable blocks"
]
},
{
"id": "recipe-alignment",
"label": "Recipe alignment",
"status": "ready",
"evidence": [
"5 compatible recipes",
"8 compatible themes",
"default block"
]
},
{
"id": "visual-assets",
"label": "Visual assets",
"status": "ready",
"evidence": [
"replaceable image or media fields are present"
]
},
{
"id": "action-clarity",
"label": "Action clarity",
"status": "ready",
"evidence": [
"primary actions, links, or conversion role detected"
]
},
{
"id": "proof-and-trust",
"label": "Proof and trust",
"status": "ready",
"evidence": [
"proof role, metrics, FAQs, testimonials, or evidence cards detected"
]
},
{
"id": "seo-social-ready",
"label": "SEO and social",
"status": "ready",
"evidence": [
"Open Graph fields required",
"JSON-LD remains explicit-only"
]
},
{
"id": "responsive-surface",
"label": "Responsive surface",
"status": "ready",
"evidence": [
"surface standard",
"density comfortable"
]
}
],
"next_actions": []
},
"blocks": [
{
"id": "common-blog-hero",
"block_type": "hero",
"block_order": 1,
"metadata": {
"block_role": "hook",
"template_slot": "blog_header",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
]
},
"props": {
"eyebrow": "Blog",
"title": "Publish a high-signal article or blog entry.",
"subtitle": "Use this template for thought leadership, updates, guides, and editorial posts.",
"background": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%23111827%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%23111827%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EEditorial%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Publish a high-signal article or blog entry. visual",
"overlay": "dark"
},
"visual": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%23111827%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%23111827%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EEditorial%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Publish a high-signal article or blog entry. visual",
"title": "Replaceable hero media"
},
"cta": {
"text": "Subscribe",
"href": "#primary-action",
"aria_label": "Publish a high-signal article or blog entry.: Subscribe"
},
"appearance": {
"preset": "block"
}
}
},
{
"id": "common-blog-article_body",
"block_type": "markdown",
"block_order": 2,
"metadata": {
"block_role": "educate",
"template_slot": "article_body",
"cloneable": true,
"clone_priority": 2,
"editable_fields": [
"eyebrow",
"lede",
"content",
"callout",
"actions",
"prose_size",
"tone"
]
},
"props": {
"eyebrow": "article body",
"lede": "Use this lead paragraph to frame the section before the full CMS-managed body copy.",
"content": "## Opening argument\n\nStart with the useful idea, then support it with specific examples, evidence, and next steps.\n\n### Key takeaway\n\nUse structured sections so crawlers, readers, and agents can understand the point quickly.",
"callout": {
"title": "Editor note",
"description": "Replace this callout with the strongest supporting proof, quote, or editorial caveat for the page."
},
"actions": [
{
"label": "Review section",
"href": "#article_body"
}
],
"variant": "article",
"prose_size": "md",
"tone": "editorial"
}
},
{
"id": "common-blog-related_posts",
"block_type": "icon-card-grid",
"block_order": 3,
"metadata": {
"block_role": "educate",
"template_slot": "related_posts",
"cloneable": true,
"clone_priority": 3,
"editable_fields": [
"title",
"description",
"cards",
"columns",
"layout"
]
},
"props": {
"title": "Related reading",
"description": "Keep readers moving through a connected editorial path.",
"columns": 3,
"cards": [
{
"icon": "1",
"title": "Related post",
"description": "A sibling article or guide.",
"badges": [
"featured",
"educate"
],
"href": "#related_posts-1",
"ctaLabel": "Inspect",
"src": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%2300a6a6%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%2300a6a6%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EListing%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt": "Related post visual"
},
{
"icon": "2",
"title": "Reference",
"description": "A deeper source or documentation page.",
"badges": [
"cms",
"educate"
],
"href": "#related_posts-2",
"ctaLabel": "View"
},
{
"icon": "3",
"title": "Next step",
"description": "A conversion or learning path.",
"badges": [
"cms",
"educate"
],
"href": "#related_posts-3",
"ctaLabel": "View",
"metric": "Ready"
}
],
"layout": "grid",
"appearance": {
"preset": "bento"
}
}
},
{
"id": "common-blog-newsletter_capture",
"block_type": "form-template",
"block_order": 4,
"metadata": {
"block_role": "convert",
"template_slot": "newsletter_capture",
"cloneable": true,
"clone_priority": 4,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-blog-subscribe",
"title": "Subscribe for updates",
"description": "Share a few details and the team will follow up with a useful next step.",
"event_name": "blog.subscribe_submitted",
"fields": [
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"pii": true
},
{
"id": "message",
"type": "textarea",
"label": "What should the team know?",
"required": false,
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Send details",
"aria_label": "Subscribe for updates: Send details",
"trackAnalytics": true
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
}
A guided conversion page with page-level funnel configuration and CMS-editable step content.
{
"schema_version": "ensemble.template-review.clone.v0",
"clone_group": "common-page-templates-v1",
"template_id": "common-funnel",
"route": "/demo-sites/page-templates/funnel",
"api_href": "/api/ensemble/templates/pages/common-funnel?include_page=true",
"title": "Funnel Template",
"description": "A guided conversion page with page-level funnel configuration and CMS-editable step content.",
"primary_goal": "funnel_completion",
"layout": {
"template": "common-funnel",
"theme": "ensemble-minimal-ink",
"variant": "neumorphic"
},
"page_config": {
"surface": {
"mode": "funnel",
"chrome": "theme",
"width": "content",
"min_height": "content"
},
"appearance": {
"preset": "neumorphic",
"allowed_presets": [
"shadcn",
"bento",
"glassmorphic",
"elevated",
"block",
"dashboard",
"neumorphic"
],
"density": "comfortable",
"motion": "subtle"
},
"funnel": {
"id": "common-funnel-template",
"kind": "funnel",
"layout": "fullscreen",
"panel_width": "comfortable",
"navigation": "stepper",
"progress": "percent",
"persist_progress": "session",
"start_step": "orient",
"completion_event": "funnel.completed",
"allow_backward": true,
"allow_step_jump": false,
"validation": "native",
"metadata": {
"conversion_surface": "customer-facing-fullscreen",
"control_ergonomics": "high-touch",
"ergonomic_controls": true,
"recipe_driven": true,
"aesthetic": "customer-conversion-app",
"eyebrow": "Guided conversion",
"visual_card": true,
"visual_label": "Conversion preview",
"visual_caption": "A focused visual keeps the flow branded while visitors move through each step.",
"visual": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3ELaunch%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Guided conversion placeholder visual",
"provider": "generated-placeholder"
},
"media_opacity": 0.24,
"summary_label": "Customer path",
"summary_title": "Launch plan handoff",
"summary_description": "The flow keeps the visitor oriented while collecting only the details needed for a confident follow-up.",
"action_note": "Required fields are marked. Answers stay attached to this handoff.",
"completion_title": "Your launch plan is queued.",
"completion_description": "You leave with a clear next step, and the team has the details needed to follow up well.",
"completion_actions": [
{
"label": "Explore templates",
"href": "/demo-sites/page-templates"
},
{
"label": "Compare colorways",
"href": "/demo-sites/page-templates/colorways"
}
],
"proof_points": [
{
"label": "Average time",
"value": "2 min"
},
{
"label": "Guided steps",
"value": "4"
},
{
"label": "Form steps",
"value": "3"
}
],
"assurance_badges": [
"2 minute plan",
"Private handoff",
"Tailored next step"
]
},
"steps": [
{
"id": "orient",
"title": "Start your plan",
"description": "Personalize the path with a lightweight first step.",
"cta_label": "Continue",
"metadata": {
"role": "identify",
"estimate": "30 sec",
"outcome": "Start with just enough identity to personalize the handoff."
},
"blocks": [
{
"id": "common-funnel-step-orient-funnel_step_orient",
"block_type": "form-template",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_orient",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-orient",
"title": "Where should we send the plan?",
"description": "A quick identity check keeps the recommendations personal without slowing visitors down.",
"event_name": "funnel.orient_updated",
"fields": [
{
"id": "first_name",
"type": "text",
"label": "First name",
"required": true,
"autocomplete": "given-name",
"placeholder": "Ada"
},
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"autocomplete": "email",
"placeholder": "ada@company.com",
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Continue",
"aria_label": "Continue to fit questions",
"trackAnalytics": true,
"submitMode": "external"
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
},
{
"id": "capture",
"title": "Find the fit",
"description": "Route the visitor with structured intent answers.",
"cta_label": "Review fit",
"back_label": "Back",
"completion_event": "funnel.capture_completed",
"metadata": {
"role": "qualify",
"estimate": "45 sec",
"outcome": "Capture intent in structured fields that route cleanly into CRM and automation."
},
"blocks": [
{
"id": "common-funnel-step-capture-funnel_step_capture",
"block_type": "form-template",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_capture",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-fit",
"title": "What outcome matters most?",
"description": "Structured answers help the team tailor the recommendation before follow-up.",
"event_name": "funnel.fit_updated",
"fields": [
{
"id": "primary_goal",
"type": "radio-group",
"label": "Primary goal",
"required": true,
"options": [
"Launch faster",
"Improve conversion",
"Modernize CMS workflows"
]
},
{
"id": "team_size",
"type": "select",
"label": "Team size",
"required": true,
"placeholder": "Choose team size",
"options": [
"1-5",
"6-20",
"21-100",
"100+"
]
},
{
"id": "urgency",
"type": "slider",
"label": "Launch urgency",
"min": 1,
"max": 5,
"step": 1
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Review fit",
"aria_label": "Review funnel fit answers",
"trackAnalytics": true,
"submitMode": "external"
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
},
{
"id": "schedule",
"title": "Choose timing",
"description": "Capture timing and handoff preferences.",
"cta_label": "Prepare summary",
"back_label": "Back",
"completion_event": "funnel.schedule_completed",
"metadata": {
"role": "handoff",
"estimate": "45 sec",
"outcome": "Collect timing only after the visitor has already built momentum."
},
"blocks": [
{
"id": "common-funnel-step-schedule-funnel_step_schedule",
"block_type": "form-template",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_schedule",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-schedule",
"title": "When should the team follow up?",
"description": "Collect timing details after the visitor has already seen value.",
"event_name": "funnel.schedule_updated",
"fields": [
{
"id": "preferred_date",
"type": "date",
"label": "Preferred date"
},
{
"id": "phone",
"type": "tel",
"label": "Phone",
"autocomplete": "tel",
"placeholder": "(555) 014-2201",
"pii": true
},
{
"id": "notes",
"type": "textarea",
"label": "Anything the team should know?",
"placeholder": "Share context, constraints, or launch goals.",
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Prepare summary",
"aria_label": "Prepare funnel summary",
"trackAnalytics": true,
"submitMode": "external"
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
},
{
"id": "convert",
"title": "Confirm next step",
"description": "Confirm the path and route the next move.",
"cta_label": "Finish",
"back_label": "Back",
"metadata": {
"role": "convert",
"estimate": "15 sec",
"outcome": "End with a clear summary instead of a generic thank-you state."
},
"blocks": [
{
"id": "common-funnel-step-convert-funnel_step_convert",
"block_type": "metric-grid",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_convert",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"title",
"description",
"metrics"
]
},
"props": {
"title": "Your launch path is ready.",
"description": "The answers are organized into a focused brief so the next step feels clear, personal, and easy to act on.",
"metrics": [
{
"label": "Fit",
"value": "Mapped",
"description": "Primary outcome and team context are captured."
},
{
"label": "Timing",
"value": "Queued",
"description": "Follow-up preferences are ready for handoff."
},
{
"label": "Next",
"value": "Clear",
"description": "Finish the flow to route the plan."
}
],
"appearance": {
"preset": "dashboard"
}
}
}
]
}
]
}
},
"slot_model": [
{
"slot": "funnel_intro",
"label": "Funnel Intro",
"block_id": "common-funnel-hero",
"block_type": "hero",
"required": true,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
],
"editable_field_count": 7,
"role": "hook",
"clone_priority": 1,
"summary": "7 editable fields on hero for hook."
},
{
"slot": "funnel_steps",
"label": "Funnel Steps",
"block_id": "common-funnel-funnel_steps",
"block_type": "step-list",
"required": true,
"editable_fields": [
"title",
"subtitle",
"steps",
"status",
"estimate",
"outcome"
],
"editable_field_count": 6,
"role": "educate",
"clone_priority": 2,
"summary": "6 editable fields on step-list for educate."
},
{
"slot": "funnel_confidence",
"label": "Funnel Confidence",
"block_id": "common-funnel-funnel_confidence",
"block_type": "metric-grid",
"required": true,
"editable_fields": [
"title",
"description",
"metrics"
],
"editable_field_count": 3,
"role": "prove",
"clone_priority": 3,
"summary": "3 editable fields on metric-grid for prove."
},
{
"slot": "funnel_capture",
"label": "Funnel Capture",
"block_id": "common-funnel-funnel_capture",
"block_type": "form-template",
"required": true,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
],
"editable_field_count": 6,
"role": "convert",
"clone_priority": 4,
"summary": "6 editable fields on form-template for convert."
}
],
"slot_summary": {
"slot_count": 4,
"editable_field_count": 22,
"roles": [
"hook",
"educate",
"prove",
"convert"
]
},
"compatible_recipes": [
"soft-neumorphic",
"compact-ops",
"polished-saas-growth",
"tactile-service-ledger",
"operator-product"
],
"compatible_themes": [
"ensemble-daylight",
"ensemble-minimal-ink",
"ensemble-ops-dark",
"ensemble-foundry-lab",
"cloud-elephants-deep-sky",
"cloud-elephants-aqua-operator",
"cloud-elephants-coral-launch",
"cloud-elephants-ink-mist"
],
"seo_model": {
"required_fields": [
"title",
"description",
"canonical_url",
"open_graph.title",
"open_graph.description",
"open_graph.image"
],
"social_preview_fields": [
"title",
"description",
"image",
"image_alt",
"site_name",
"locale",
"twitter_card"
],
"structured_data_policy": "explicit-json-ld-only",
"suggested_json_ld_types": [
"WebPage"
]
},
"cms_usage": {
"replace_placeholders": true,
"review_required_before_publish": true,
"safe_for_static_export": true,
"safe_for_wordpress_snapshot": true
},
"polish_audit": {
"protocol": "ensemble.template-polish.v0",
"status": "ready",
"score": 100,
"ready_count": 7,
"dimension_count": 7,
"dimensions": [
{
"id": "composition-ready",
"label": "CMS composition",
"status": "ready",
"evidence": [
"4 editable slots",
"4 cloneable blocks"
]
},
{
"id": "recipe-alignment",
"label": "Recipe alignment",
"status": "ready",
"evidence": [
"5 compatible recipes",
"8 compatible themes",
"default neumorphic"
]
},
{
"id": "visual-assets",
"label": "Visual assets",
"status": "ready",
"evidence": [
"replaceable image or media fields are present"
]
},
{
"id": "action-clarity",
"label": "Action clarity",
"status": "ready",
"evidence": [
"primary actions, links, or conversion role detected"
]
},
{
"id": "proof-and-trust",
"label": "Proof and trust",
"status": "ready",
"evidence": [
"proof role, metrics, FAQs, testimonials, or evidence cards detected"
]
},
{
"id": "seo-social-ready",
"label": "SEO and social",
"status": "ready",
"evidence": [
"Open Graph fields required",
"JSON-LD remains explicit-only"
]
},
{
"id": "responsive-surface",
"label": "Responsive surface",
"status": "ready",
"evidence": [
"surface funnel",
"density comfortable"
]
}
],
"next_actions": []
},
"blocks": [
{
"id": "common-funnel-hero",
"block_type": "hero",
"block_order": 1,
"metadata": {
"block_role": "hook",
"template_slot": "funnel_intro",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
]
},
"props": {
"eyebrow": "Funnel",
"title": "Build a tailored launch plan in minutes.",
"subtitle": "Answer a few focused questions and move from interest to a clear next step without leaving the flow.",
"background": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3ELaunch%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Build a tailored launch plan in minutes. visual",
"overlay": "dark"
},
"visual": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3ELaunch%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Build a tailored launch plan in minutes. visual",
"title": "Replaceable hero media"
},
"cta": {
"text": "Start the plan",
"href": "#primary-action",
"aria_label": "Build a tailored launch plan in minutes.: Start the plan"
},
"appearance": {
"preset": "neumorphic"
}
}
},
{
"id": "common-funnel-funnel_steps",
"block_type": "step-list",
"block_order": 2,
"metadata": {
"block_role": "educate",
"template_slot": "funnel_steps",
"cloneable": true,
"clone_priority": 2,
"editable_fields": [
"title",
"subtitle",
"steps",
"status",
"estimate",
"outcome"
]
},
"props": {
"title": "A confident path from intent to action",
"subtitle": "Use these steps to make the page path concrete.",
"variant": "numbered",
"steps": [
{
"title": "Start",
"description": "Collect identity only after the outcome is clear.",
"status": "Start here",
"estimate": "15 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-1",
"ctaLabel": "Review step"
},
{
"title": "Fit",
"description": "Use structured answers for scoring and routing.",
"status": "Planned",
"estimate": "30 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-2",
"ctaLabel": "Review step"
},
{
"title": "Timing",
"description": "Ask for follow-up details once fit is established.",
"status": "Planned",
"estimate": "45 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-3",
"ctaLabel": "Review step"
},
{
"title": "Summary",
"description": "End with an explicit, measurable completion.",
"status": "Planned",
"estimate": "1 day",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-4",
"ctaLabel": "Review step"
}
],
"appearance": {
"preset": "shadcn"
}
}
},
{
"id": "common-funnel-funnel_confidence",
"block_type": "metric-grid",
"block_order": 3,
"metadata": {
"block_role": "prove",
"template_slot": "funnel_confidence",
"cloneable": true,
"clone_priority": 3,
"editable_fields": [
"title",
"description",
"metrics"
]
},
"props": {
"title": "Conversion confidence signals",
"metrics": [
{
"label": "Steps",
"value": "4",
"description": "A short path keeps visitors oriented.",
"progress": 100
},
{
"label": "Time",
"value": "2 min",
"description": "The flow asks only for useful handoff detail.",
"progress": 82
},
{
"label": "Routing",
"value": "Ready",
"description": "Answers can feed CRM, automation, and follow-up.",
"progress": 90
}
],
"appearance": {
"preset": "dashboard"
}
}
},
{
"id": "common-funnel-funnel_capture",
"block_type": "form-template",
"block_order": 4,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_capture",
"cloneable": true,
"clone_priority": 4,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-intake",
"title": "Plan intake",
"description": "Share a few details and the team will follow up with a useful next step.",
"event_name": "funnel.intake_submitted",
"fields": [
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"pii": true
},
{
"id": "message",
"type": "textarea",
"label": "What should the team know?",
"required": false,
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Send details",
"aria_label": "Plan intake: Send details",
"trackAnalytics": true
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
}
A structured contact page with routing cards, canonical CMS form capture, and support FAQs.
{
"schema_version": "ensemble.template-review.clone.v0",
"clone_group": "common-page-templates-v1",
"template_id": "common-contact",
"route": "/demo-sites/page-templates/contact",
"api_href": "/api/ensemble/templates/pages/common-contact?include_page=true",
"title": "Contact Template",
"description": "A structured contact page with routing cards, canonical CMS form capture, and support FAQs.",
"primary_goal": "contact_submission",
"layout": {
"template": "common-contact",
"theme": "ensemble-daylight",
"variant": "shadcn"
},
"page_config": {
"surface": {
"mode": "standard",
"chrome": "theme",
"width": "content",
"min_height": "content"
},
"appearance": {
"preset": "shadcn",
"allowed_presets": [
"shadcn",
"bento",
"glassmorphic",
"elevated",
"block",
"dashboard",
"neumorphic"
],
"density": "compact",
"motion": "subtle"
}
},
"slot_model": [
{
"slot": "contact_intro",
"label": "Contact Intro",
"block_id": "common-contact-hero",
"block_type": "hero",
"required": true,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
],
"editable_field_count": 7,
"role": "hook",
"clone_priority": 1,
"summary": "7 editable fields on hero for hook."
},
{
"slot": "contact_routes",
"label": "Contact Routes",
"block_id": "common-contact-contact_routes",
"block_type": "icon-card-grid",
"required": true,
"editable_fields": [
"title",
"description",
"cards",
"columns",
"layout"
],
"editable_field_count": 5,
"role": "educate",
"clone_priority": 2,
"summary": "5 editable fields on icon-card-grid for educate."
},
{
"slot": "contact_form",
"label": "Contact Form",
"block_id": "common-contact-contact_form",
"block_type": "form-template",
"required": true,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
],
"editable_field_count": 6,
"role": "convert",
"clone_priority": 3,
"summary": "6 editable fields on form-template for convert."
},
{
"slot": "contact_faq",
"label": "Contact Faq",
"block_id": "common-contact-contact_faq",
"block_type": "faq",
"required": true,
"editable_fields": [
"items",
"columns"
],
"editable_field_count": 2,
"role": "educate",
"clone_priority": 4,
"summary": "2 editable fields on faq for educate."
}
],
"slot_summary": {
"slot_count": 4,
"editable_field_count": 20,
"roles": [
"hook",
"educate",
"convert"
]
},
"compatible_recipes": [
"compact-ops",
"minimal-ink",
"polished-saas-crisp",
"local-service-trust",
"regulated-professional",
"operator-product",
"tactile-service-ledger"
],
"compatible_themes": [
"ensemble-daylight",
"ensemble-minimal-ink",
"ensemble-ops-dark",
"ensemble-foundry-lab",
"cloud-elephants-deep-sky",
"cloud-elephants-aqua-operator",
"cloud-elephants-coral-launch",
"cloud-elephants-ink-mist"
],
"seo_model": {
"required_fields": [
"title",
"description",
"canonical_url",
"open_graph.title",
"open_graph.description",
"open_graph.image"
],
"social_preview_fields": [
"title",
"description",
"image",
"image_alt",
"site_name",
"locale",
"twitter_card"
],
"structured_data_policy": "explicit-json-ld-only",
"suggested_json_ld_types": [
"ContactPage",
"Organization"
]
},
"cms_usage": {
"replace_placeholders": true,
"review_required_before_publish": true,
"safe_for_static_export": true,
"safe_for_wordpress_snapshot": true
},
"polish_audit": {
"protocol": "ensemble.template-polish.v0",
"status": "ready",
"score": 100,
"ready_count": 7,
"dimension_count": 7,
"dimensions": [
{
"id": "composition-ready",
"label": "CMS composition",
"status": "ready",
"evidence": [
"4 editable slots",
"4 cloneable blocks"
]
},
{
"id": "recipe-alignment",
"label": "Recipe alignment",
"status": "ready",
"evidence": [
"7 compatible recipes",
"8 compatible themes",
"default shadcn"
]
},
{
"id": "visual-assets",
"label": "Visual assets",
"status": "ready",
"evidence": [
"replaceable image or media fields are present"
]
},
{
"id": "action-clarity",
"label": "Action clarity",
"status": "ready",
"evidence": [
"primary actions, links, or conversion role detected"
]
},
{
"id": "proof-and-trust",
"label": "Proof and trust",
"status": "ready",
"evidence": [
"proof role, metrics, FAQs, testimonials, or evidence cards detected"
]
},
{
"id": "seo-social-ready",
"label": "SEO and social",
"status": "ready",
"evidence": [
"Open Graph fields required",
"JSON-LD remains explicit-only"
]
},
{
"id": "responsive-surface",
"label": "Responsive surface",
"status": "ready",
"evidence": [
"surface standard",
"density compact"
]
}
],
"next_actions": []
},
"blocks": [
{
"id": "common-contact-hero",
"block_type": "hero",
"block_order": 1,
"metadata": {
"block_role": "hook",
"template_slot": "contact_intro",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
]
},
"props": {
"eyebrow": "Contact",
"title": "Make it easy to reach the right team.",
"subtitle": "A contact page should route intent clearly and capture only what the team needs to respond.",
"cta": {
"text": "Start a conversation",
"href": "#primary-action",
"aria_label": "Make it easy to reach the right team.: Start a conversation"
},
"appearance": {
"preset": "shadcn"
}
}
},
{
"id": "common-contact-contact_routes",
"block_type": "icon-card-grid",
"block_order": 2,
"metadata": {
"block_role": "educate",
"template_slot": "contact_routes",
"cloneable": true,
"clone_priority": 2,
"editable_fields": [
"title",
"description",
"cards",
"columns",
"layout"
]
},
"props": {
"title": "Contact routes",
"description": "Give visitors confidence that their request will land in the right place.",
"columns": 3,
"cards": [
{
"icon": "S",
"title": "Sales",
"description": "For pricing, pilots, and commercial questions.",
"badges": [
"featured",
"educate"
],
"href": "#contact_routes-1",
"ctaLabel": "Inspect",
"src": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%2300a6a6%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%2300a6a6%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EListing%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt": "Sales visual"
},
{
"icon": "P",
"title": "Press",
"description": "For media, speaking, and analyst requests.",
"badges": [
"cms",
"educate"
],
"href": "#contact_routes-2",
"ctaLabel": "View"
},
{
"icon": "H",
"title": "Help",
"description": "For support, account, and implementation questions.",
"badges": [
"cms",
"educate"
],
"href": "#contact_routes-3",
"ctaLabel": "View",
"metric": "Ready"
}
],
"layout": "grid",
"appearance": {
"preset": "bento"
}
}
},
{
"id": "common-contact-contact_form",
"block_type": "form-template",
"block_order": 3,
"metadata": {
"block_role": "convert",
"template_slot": "contact_form",
"cloneable": true,
"clone_priority": 3,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-contact",
"title": "Send a message",
"description": "Share a few details and the team will follow up with a useful next step.",
"event_name": "contact.submitted",
"fields": [
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"pii": true
},
{
"id": "message",
"type": "textarea",
"label": "What should the team know?",
"required": false,
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Send details",
"aria_label": "Send a message: Send details",
"trackAnalytics": true
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
},
{
"id": "common-contact-contact_faq",
"block_type": "faq",
"block_order": 4,
"metadata": {
"block_role": "educate",
"template_slot": "contact_faq",
"cloneable": true,
"clone_priority": 4,
"editable_fields": [
"items",
"columns"
]
},
"props": {
"title": "Questions before visitors continue",
"description": "Use FAQs to remove hesitation without overwhelming the conversion path.",
"columns": 2,
"items": [
{
"question": "When should this page use a form?",
"answer": "Use a form when the team needs structured intake, routing, or consent evidence.",
"category": "Routing",
"default_open": true
},
{
"question": "Can this route to different teams?",
"answer": "Yes. Add a select field or CMS routing metadata to the form template.",
"category": "CMS",
"default_open": false
}
],
"appearance": {
"preset": "outline"
}
}
}
]
}
A service offer page with process, deliverables, proof, and inquiry capture.
{
"schema_version": "ensemble.template-review.clone.v0",
"clone_group": "common-page-templates-v1",
"template_id": "common-service-page",
"route": "/demo-sites/page-templates/service-page",
"api_href": "/api/ensemble/templates/pages/common-service-page?include_page=true",
"title": "Service Page Template",
"description": "A service offer page with process, deliverables, proof, and inquiry capture.",
"primary_goal": "service_inquiry",
"layout": {
"template": "common-service-page",
"theme": "ensemble-daylight",
"variant": "elevated"
},
"page_config": {
"surface": {
"mode": "standard",
"chrome": "theme",
"width": "content",
"min_height": "content"
},
"appearance": {
"preset": "elevated",
"allowed_presets": [
"shadcn",
"bento",
"glassmorphic",
"elevated",
"block",
"dashboard",
"neumorphic"
],
"density": "comfortable",
"motion": "subtle"
}
},
"slot_model": [
{
"slot": "service_hero",
"label": "Service Hero",
"block_id": "common-service-page-hero",
"block_type": "hero",
"required": true,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
],
"editable_field_count": 7,
"role": "hook",
"clone_priority": 1,
"summary": "7 editable fields on hero for hook."
},
{
"slot": "service_process",
"label": "Service Process",
"block_id": "common-service-page-service_process",
"block_type": "step-list",
"required": true,
"editable_fields": [
"title",
"subtitle",
"steps",
"status",
"estimate",
"outcome"
],
"editable_field_count": 6,
"role": "educate",
"clone_priority": 2,
"summary": "6 editable fields on step-list for educate."
},
{
"slot": "service_deliverables",
"label": "Service Deliverables",
"block_id": "common-service-page-service_deliverables",
"block_type": "icon-card-grid",
"required": true,
"editable_fields": [
"title",
"description",
"cards",
"columns",
"layout"
],
"editable_field_count": 5,
"role": "educate",
"clone_priority": 3,
"summary": "5 editable fields on icon-card-grid for educate."
},
{
"slot": "service_proof",
"label": "Service Proof",
"block_id": "common-service-page-service_proof",
"block_type": "testimonials",
"required": true,
"editable_fields": [
"title",
"description",
"testimonials",
"layout"
],
"editable_field_count": 4,
"role": "prove",
"clone_priority": 4,
"summary": "4 editable fields on testimonials for prove."
},
{
"slot": "service_inquiry",
"label": "Service Inquiry",
"block_id": "common-service-page-service_inquiry",
"block_type": "form-template",
"required": true,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
],
"editable_field_count": 6,
"role": "convert",
"clone_priority": 5,
"summary": "6 editable fields on form-template for convert."
}
],
"slot_summary": {
"slot_count": 5,
"editable_field_count": 28,
"roles": [
"hook",
"educate",
"prove",
"convert"
]
},
"compatible_recipes": [
"polished-saas",
"polished-saas-enterprise",
"minimal-ink",
"local-service-trust",
"regulated-professional",
"operator-product",
"tactile-service-ledger"
],
"compatible_themes": [
"ensemble-daylight",
"ensemble-minimal-ink",
"ensemble-ops-dark",
"ensemble-foundry-lab",
"cloud-elephants-deep-sky",
"cloud-elephants-aqua-operator",
"cloud-elephants-coral-launch",
"cloud-elephants-ink-mist"
],
"seo_model": {
"required_fields": [
"title",
"description",
"canonical_url",
"open_graph.title",
"open_graph.description",
"open_graph.image"
],
"social_preview_fields": [
"title",
"description",
"image",
"image_alt",
"site_name",
"locale",
"twitter_card"
],
"structured_data_policy": "explicit-json-ld-only",
"suggested_json_ld_types": [
"Service",
"FAQPage",
"ContactPage"
]
},
"cms_usage": {
"replace_placeholders": true,
"review_required_before_publish": true,
"safe_for_static_export": true,
"safe_for_wordpress_snapshot": true
},
"polish_audit": {
"protocol": "ensemble.template-polish.v0",
"status": "ready",
"score": 100,
"ready_count": 7,
"dimension_count": 7,
"dimensions": [
{
"id": "composition-ready",
"label": "CMS composition",
"status": "ready",
"evidence": [
"5 editable slots",
"5 cloneable blocks"
]
},
{
"id": "recipe-alignment",
"label": "Recipe alignment",
"status": "ready",
"evidence": [
"7 compatible recipes",
"8 compatible themes",
"default elevated"
]
},
{
"id": "visual-assets",
"label": "Visual assets",
"status": "ready",
"evidence": [
"replaceable image or media fields are present"
]
},
{
"id": "action-clarity",
"label": "Action clarity",
"status": "ready",
"evidence": [
"primary actions, links, or conversion role detected"
]
},
{
"id": "proof-and-trust",
"label": "Proof and trust",
"status": "ready",
"evidence": [
"proof role, metrics, FAQs, testimonials, or evidence cards detected"
]
},
{
"id": "seo-social-ready",
"label": "SEO and social",
"status": "ready",
"evidence": [
"Open Graph fields required",
"JSON-LD remains explicit-only"
]
},
{
"id": "responsive-surface",
"label": "Responsive surface",
"status": "ready",
"evidence": [
"surface standard",
"density comfortable"
]
}
],
"next_actions": []
},
"blocks": [
{
"id": "common-service-page-hero",
"block_type": "hero",
"block_order": 1,
"metadata": {
"block_role": "hook",
"template_slot": "service_hero",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
]
},
"props": {
"eyebrow": "Service",
"title": "Explain a service offer with scope and proof.",
"subtitle": "Use this page for consulting, implementation, managed services, and service-line offers.",
"background": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%232f7d32%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%232f7d32%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EService%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Explain a service offer with scope and proof. visual",
"overlay": "dark"
},
"visual": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%232f7d32%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%232f7d32%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EService%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Explain a service offer with scope and proof. visual",
"title": "Replaceable hero media"
},
"cta": {
"text": "Plan a service call",
"href": "#primary-action",
"aria_label": "Explain a service offer with scope and proof.: Plan a service call"
},
"appearance": {
"preset": "elevated"
}
}
},
{
"id": "common-service-page-service_process",
"block_type": "step-list",
"block_order": 2,
"metadata": {
"block_role": "educate",
"template_slot": "service_process",
"cloneable": true,
"clone_priority": 2,
"editable_fields": [
"title",
"subtitle",
"steps",
"status",
"estimate",
"outcome"
]
},
"props": {
"title": "Service process",
"subtitle": "Use these steps to make the page path concrete.",
"variant": "numbered",
"steps": [
{
"title": "Diagnose",
"description": "Understand the current state, constraints, and desired outcome.",
"status": "Start here",
"estimate": "15 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#service_process-step-1",
"ctaLabel": "Review step"
},
{
"title": "Design",
"description": "Shape a practical service plan with milestones and evidence.",
"status": "Planned",
"estimate": "30 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#service_process-step-2",
"ctaLabel": "Review step"
},
{
"title": "Deliver",
"description": "Execute the work and capture proof of completion.",
"status": "Planned",
"estimate": "45 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#service_process-step-3",
"ctaLabel": "Review step"
}
],
"appearance": {
"preset": "shadcn"
}
}
},
{
"id": "common-service-page-service_deliverables",
"block_type": "icon-card-grid",
"block_order": 3,
"metadata": {
"block_role": "educate",
"template_slot": "service_deliverables",
"cloneable": true,
"clone_priority": 3,
"editable_fields": [
"title",
"description",
"cards",
"columns",
"layout"
]
},
"props": {
"title": "Deliverables",
"description": "Make scope clear so the buyer knows what is included.",
"columns": 3,
"cards": [
{
"icon": "1",
"title": "Assessment",
"description": "A structured review or audit.",
"badges": [
"featured",
"educate"
],
"href": "#service_deliverables-1",
"ctaLabel": "Inspect",
"src": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%2300a6a6%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%2300a6a6%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EListing%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt": "Assessment visual"
},
{
"icon": "2",
"title": "Implementation",
"description": "Hands-on delivery or configuration.",
"badges": [
"cms",
"educate"
],
"href": "#service_deliverables-2",
"ctaLabel": "View"
},
{
"icon": "3",
"title": "Handoff",
"description": "Documentation, training, and next steps.",
"badges": [
"cms",
"educate"
],
"href": "#service_deliverables-3",
"ctaLabel": "View",
"metric": "Ready"
}
],
"layout": "grid",
"appearance": {
"preset": "bento"
}
}
},
{
"id": "common-service-page-service_proof",
"block_type": "testimonials",
"block_order": 4,
"metadata": {
"block_role": "prove",
"template_slot": "service_proof",
"cloneable": true,
"clone_priority": 4,
"editable_fields": [
"title",
"description",
"testimonials",
"layout"
]
},
"props": {
"title": "Proof from the field",
"description": "Use this section for reviewed quotes, references, or approved customer evidence.",
"layout": "grid",
"testimonials": [
{
"quote": "The page helped us move from interest to a clear next step in one focused visit.",
"author": "Customer team",
"role": "Approved reference",
"company": "Example organization",
"rating": 5,
"avatarUrl": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%23111827%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%23111827%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3EEditorial%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt": "Approved reference avatar"
}
],
"appearance": {
"preset": "elevated"
}
}
},
{
"id": "common-service-page-service_inquiry",
"block_type": "form-template",
"block_order": 5,
"metadata": {
"block_role": "convert",
"template_slot": "service_inquiry",
"cloneable": true,
"clone_priority": 5,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-service-inquiry",
"title": "Discuss this service",
"description": "Share a few details and the team will follow up with a useful next step.",
"event_name": "service.inquiry_submitted",
"fields": [
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"pii": true
},
{
"id": "message",
"type": "textarea",
"label": "What should the team know?",
"required": false,
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Send details",
"aria_label": "Discuss this service: Send details",
"trackAnalytics": true
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
}
The page remains useful as a recipe coverage gap for future theme variants.