Skip to content

feat: schema redesign — socialPreview, podcastSeries, category, short + podcast/guest/post/page/sponsor updates#680

Merged
codercatdev merged 2 commits intodevfrom
feat/schema-redesign
Mar 16, 2026
Merged

feat: schema redesign — socialPreview, podcastSeries, category, short + podcast/guest/post/page/sponsor updates#680
codercatdev merged 2 commits intodevfrom
feat/schema-redesign

Conversation

@codercatdev
Copy link
Contributor

Track A: Sanity Schema Updates for Website Redesign

New Partial

  • socialPreview (schemas/partials/socialPreview.ts) — 5 optional fields applied to all content types:
    • ogTitle (string, max 60 chars) — social title override
    • ogDescription (text, max 155 chars) — social description override
    • ogImage (image, hotspot: true) — custom OG image (1200×630)
    • twitterCardType (enum: summary_large_image | summary)
    • noIndex (boolean) — hide from search engines
    • All fields fall back to title, excerpt, coverImage when empty

New Document Types

  • podcastSeries — series grouping for podcast episodes (title, slug, description, coverImage, youtubePlaylistId, isActive)
  • category — content taxonomy with color badges (title, slug, description, color)
  • short — standalone YouTube Shorts (title, slug, youtube, thumbnail, parentEpisode→podcast, publishedAt, duration, categories)

Updated Documents

  • podcast — 11 new fields: thumbnail, duration, chapters (title+timestamp+seconds), series→podcastSeries, seriesOrder, listenLinks (youtube/spotify/apple/overcast/pocketCasts/rss), transcript, contentType enum (interview/solo/tutorial/news/review), relatedShorts, relatedBlogPost, + socialPreview partial
  • guest — +company, +role (socials already exist via user partial)
  • post — +categories (refs to category), +socialPreview partial
  • page — +socialPreview partial
  • sponsor — +socialPreview partial

NOT included (deferred per @pm)

  • course, lesson document types
  • page builder blocks (hero, featureGrid, etc.)
  • author changes (socials already exist)

Registration

All 3 new types registered in sanity.config.ts.

Specs

  • Design system: /specs/design-system.md Section 7
  • Podcast requirements: /specs/podcast-video-requirements.md Section 3
  • Social preview: /specs/social-preview-requirements.md Section 5
  • Gap analysis: /specs/schema-gap-analysis.md

…ent types

New partial:
- socialPreview: ogTitle, ogDescription, ogImage (hotspot), twitterCardType, noIndex
  Applied to: post, podcast, page, sponsor

New document types:
- podcastSeries: series grouping with YouTube playlist support
- category: content taxonomy with color badges
- short: standalone YouTube Shorts with parentEpisode reference

Updated documents:
- podcast: +thumbnail, duration, chapters, series, seriesOrder, listenLinks,
  transcript, contentType enum, relatedShorts, relatedBlogPost, socialPreview
- guest: +company, role
- post: +categories, socialPreview
- page: +socialPreview
- sponsor: +socialPreview

Registered podcastSeries, category, short in sanity.config.ts
Sandbox env var redaction substituted the wrong value during file generation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant