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...
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
| 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. |
| 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. |
| 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. |
| 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 |
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.
- 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 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.
- 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.
- 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.
- 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.
- 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.