B2BEA.org V1 Publishing Model Spec
internal prototype · canonical JSON + Dreamborn Forge HTML
internal generated
design_doc · markdown

B2BEA.org V1 Publishing Model Spec

B2BEA.org V1 Publishing Model Spec Source of record: RedKey Supabase Studio artifact. Project: B2BEA.org Rebuild Project ID: a820dd0c 6cef 4133 bfbd d802fd806e44 Artifact: publishing model spec Artifact ID: a9636e2f a4be 4586 82dd c1a7bf3199fa Version: 1 Status: draft Updated: 2026 05 06T20:05:00.344465+00:00 Decisions ID Topic Decision PUB DEC 001 Publishin...

B2BEA.org V1 Publishing Model Spec

Source of record: RedKey Supabase Studio artifact.

  • Project: B2BEA.org Rebuild
  • Project ID: a820dd0c-6cef-4133-bfbd-d802fd806e44
  • Artifact: publishing-model-spec
  • Artifact ID: a9636e2f-a4be-4586-82dd-c1a7bf3199fa
  • Version: 1
  • Status: draft
  • Updated: 2026-05-06T20:05:00.344465+00:00
Decisions

| ID | Topic | Decision | |---|---|---| | PUB-DEC-001 | Publishing paths | V1 supports two first-class page publishing paths: Sanity standard pages and custom HTML import. | | PUB-DEC-002 | Source of truth | Sanity owns editorial/public content. B2BEA Supabase owns application and operational data. Code/import registry owns custom HTML page artifacts. | | PUB-DEC-003 | Internal permissions | Brett, Sarah, and Justin can publish directly in V1; production control comes from preview, required fields, lifecycle states, audit events, and rollback/archive behavior rather than complex internal RBAC. | | PUB-DEC-004 | Public company profiles | Vendor public profiles are V1. Practitioner company public profiles are excluded from V1; company workspace is private only. | | PUB-DEC-005 | Page metadata | Every publishable page type must satisfy hardened SEO, GEO, and social metadata requirements before publish. |

Publishing Paths

| Path | Purpose | Source Of Truth | Lifecycle | Required Controls | |---|---|---|---|---| | Sanity standard page | Create normal structured public pages using reusable templates and Lovable design-system components. | Sanity | draft, preview, scheduled, published, archived | Template selection, required fields, slug rules, SEO metadata, GEO metadata, social metadata, preview URL, publish/schedule, archive, analytics hooks. | | Custom HTML import | Bring in custom landing pages/resources when the page needs a bespoke design outside standard templates. | Code/import registry plus repository artifact | draft, preview, published, archived, rolled_back | Owner, page registry entry, slug/path, asset validation, preview URL, publish flag, archive/rollback, SEO metadata, GEO metadata, social metadata, analytics hooks. |

Source Of Truth Boundaries

| Domain | Source | Examples | |---|---|---| | Editorial/public content | Sanity | Standard pages, articles, blog/editorial content, resource/guide/report body copy, SEO/GEO/social fields, author editorial metadata. | | Custom page artifacts | Code/import registry | Custom HTML, page-specific CSS/JS, static assets, custom resource pages. | | Profiles and organizations | B2BEA Supabase | People, companies/organizations, vendors, vendor claims, vendor profile updates. | | Membership and entitlements | B2BEA Supabase | Memberships, roles, seats, resource/course/event access. | | Academy | B2BEA Supabase unless later split | Courses, modules, lessons, enrollments, progress, certificates. | | Surveys and forms | B2BEA Supabase | Survey definitions, questions, responses, forms, submissions, exports. | | Jobs and events operations | B2BEA Supabase | Jobs, scraped jobs, event registrations, attendees, sponsors, check-in. | | CRM pipeline | HubSpot primary | Leads, opportunities, sales activity, renewals. | | Analytics and notifications | B2BEA Supabase plus provider logs | Page views, downloads, notification event log, email delivery status. |

Page Lifecycle

| State | Meaning | Public | |---|---|---:| | draft | Editable but not public. | No | | preview | Viewable through protected preview URL for review. | No | | submitted | External contributor/vendor/company has submitted for review. | No | | in_review | B2BEA is reviewing public-facing or externally submitted content. | No | | scheduled | Approved content scheduled for future publication. | No | | published | Visible publicly or to its gated audience. | Yes | | archived | Removed from public listing and navigation; may remain internally readable. | No | | rolled_back | Prior version restored or current custom page removed from public route. | No |

Hardened SEO, GEO, And Social Rules

No public page publishes without complete SEO, GEO, social, indexing, and analytics metadata appropriate to its page family.

Applies to:

  • Sanity standard pages.
  • Custom HTML imports.
  • Vendor public profiles.
  • Person profiles.
  • Articles.
  • Resources, guides, and reports.
  • Events.
  • Jobs.
  • Courses.
  • Public survey landing/results pages.
SEO Required
  • Meta title.
  • Meta description.
  • Canonical URL.
  • Index/noindex flag.
  • Robots behavior.
  • Slug.
  • H1.
  • Primary topic/category.
  • Breadcrumb data where applicable.
  • Structured data type where applicable.
  • Sitemap inclusion flag.
  • Redirect rule when URL changes.
GEO Required

GEO here means generative engine optimization: the page should be understandable, attributable, and answer-ready for AI search and answer engines.

  • LLM answer summary.
  • Entity/topic tags.
  • Audience.
  • Industry/category context.
  • Key facts.
  • Source/author attribution.
  • Last reviewed date.
  • Content freshness rule.
  • FAQ/question-answer fields where applicable.
  • Citation/source fields where applicable.
Social Required
  • Open Graph title.
  • Open Graph description.
  • Open Graph image.
  • Twitter/X card type.
  • Social share image alt text.
  • LinkedIn-safe summary.
  • Fallback image by page family.
Validation Rules
  • Metadata is validated at build/publish time.
  • Preview surfaces show search/social preview before publish.
  • Missing required metadata blocks publish for standard pages.
  • Custom HTML imports must declare metadata in registry/frontmatter.
  • Archive/noindex state updates sitemap and robots behavior.
  • Private/preview pages must be noindex.
Page Family Overrides
  • Vendor profiles require vendor category, services, canonical vendor URL, and vendor logo/social image fallback.
  • Resources, guides, and reports require gated/free flag, sponsor/vendor attribution where applicable, and download analytics key.
  • Jobs require job structured data when public and expiration/closed state handling.
  • Events require event structured data and registration state.
  • Courses require course structured data where public and entitlement/gating metadata.
URL And Slug Rules
  • Every public page has one canonical URL.
  • Slug must be unique within its page family.
  • Changing a published slug requires redirect handling.
  • Custom HTML imports must declare their route in the page registry.
  • Archived pages should not appear in public navigation, search indexes, or sitemap output.
  • Vendor public profiles keep vendor-profile URL ownership in Supabase-backed routing.
  • Practitioner company public routes are not generated in V1.