diff --git a/.agent/skills/alex-voice-and-copy b/.agent/skills/alex-voice-and-copy new file mode 120000 index 000000000..40e400e01 --- /dev/null +++ b/.agent/skills/alex-voice-and-copy @@ -0,0 +1 @@ +/home/alex/codingcat.dev/skills/alex-voice-and-copy \ No newline at end of file diff --git a/.agent/skills/codingcat-design-system b/.agent/skills/codingcat-design-system new file mode 120000 index 000000000..a30d464aa --- /dev/null +++ b/.agent/skills/codingcat-design-system @@ -0,0 +1 @@ +/home/alex/codingcat.dev/skills/codingcat-design-system \ No newline at end of file diff --git a/.agent/skills/codingcat-media-studio b/.agent/skills/codingcat-media-studio new file mode 120000 index 000000000..a2441ef45 --- /dev/null +++ b/.agent/skills/codingcat-media-studio @@ -0,0 +1 @@ +/home/alex/codingcat.dev/skills/codingcat-media-studio \ No newline at end of file diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 000000000..c7965c6ab --- /dev/null +++ b/.cursorrules @@ -0,0 +1,12 @@ +# CodingCat.dev Cursor & IDE Rules (`.cursorrules`) + +Always follow `AGENTS.md` and `DESIGN.md`: + +1. **Canonical Content Pillars & Terminology**: + - **Courses** (`/courses` -> `/course/[slug]`), made of **Lessons** (`Explore Courses →`, `Start Course →`). + - **Podcasts** (`/podcasts` -> `/podcast/[slug]`), made of **Episodes** (`Watch Podcasts`, `Watch Episode →`). + - **Blog** (`/blog` -> `/post/[slug]`), made of **Blog Posts** (`Read Blog`, `Read Post →`). + - **Diagrams**: Never write the brand word `"Excalidraw"` in user-facing UI copy, badges, filenames, or captions; call them **Diagrams**, **Visual Diagrams**, or **Architecture Diagrams**. Never invent synonyms like `"Teardowns"`, `"Blueprints"`, `"Curriculum"`, `"Units"`, or `"Skill Trees"`. +2. **NEVER Use Em-Dashes**: Do not output the em-dash character anywhere. +3. **Always Use Tables for Comparisons**: Render Markdown or HTML comparison tables. +4. **Header & Mobile 3-Line Drawer**: Never put a `"Get Started"` button inside `#site-header`; keep the mobile header clean so `#nav-drawer-toggle` (the 3-line menu button) is always visible. diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..0ec0e35b5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,64 @@ +# CodingCat.dev Agent Instructions & Universal Skill Router (`AGENTS.md`) + +Welcome to **CodingCat.dev** ("Purrfect Web Tutorials"), founded and hosted by **Alex Patterson (`@alex.patterson`)** featuring **AJ the Cat**. + +This repository contains both the **CodingCat.dev Monorepo** (`apps/site`, `apps/sanity`, `apps/mcp-server`, `apps/ops`) and the **CodingCat.dev Agent Toolkit & 13-Module Design System** (`skills/`, `tokens/`, `assets/`, `DESIGN.md`), modeled after [`sanity-io/agent-toolkit`](https://github.com/sanity-io/agent-toolkit). + +--- + +## 1. Non-Negotiable Global Rules + +1. **Canonical Content Pillars & Terminology (Strict)**: + - Our 3 content pillars match our Sanity document types: + - **Courses** (`/courses` -> `/course/[slug]`), made of **Lessons** (CTA: `Explore Courses →` or `Start Course →`). + - **Podcasts** (`/podcasts` -> `/podcast/[slug]`), made of **Episodes** (CTA: `Watch Podcasts` or `Watch Episode →`). + - **Blog** (`/blog` -> `/post/[slug]`), made of **Blog Posts** (CTA: `Read Blog` or `Read Post →`). + - **Never invent synonyms** like `"Teardowns"`, `"Blueprints"`, `"Curriculum"`, `"Units"`, `"Boss Node"`, or `"Skill Trees"`. + - **Never write the brand word `"Excalidraw"` in user-facing UI copy**, badges, headings, filenames, or captions. Always refer to them simply as **Diagrams**, **Visual Diagrams**, or **Architecture Diagrams** in user-facing text (even though they use a hand-drawn sketch aesthetic and the `Virgil` font). +2. **NEVER Use Em-Dashes**: Never output the em-dash character in any prose, UI copy, markdown document, title, video script, social post, or code comment. Use commas, parentheses, colons, or separate sentences instead. +3. **Always Use Markdown Tables for Comparisons**: Whenever comparing tools, frameworks, architectures, pricing, or trade-offs, always render a structured Markdown or HTML comparison table. +4. **Dual-Theme Chalkboard & Royal Purple Visual System**: + - **Light Mode (`:root`, Stitch `8d1319903d504a79ae56110486455e17`)**: Chalkboard Paper (`#FAF9FC`) with `#D8B4FE` dot grid, `#FFFFFF` cards, `#2A1155` deep purple ink/borders/sketch shadows (`3px 4px 0 #2A1155`), `#7C3AED` brand purple, and pastel diagram fills (`#FEF08A` yellow, `#BAE6FD` sky blue, `#FBCFE8` candy pink, `#EDE9FE` lilac, `#86EFAC` mint). + - **Dark Mode (`.dark`, Stitch `b9e00f99c0d34e9884bf7766a014577b`)**: Obsidian Chalkboard (`#0B1326`) with purple/fuchsia radial glows, `#131B2E` / `#171F33` surfaces, `#060E20` deep wells, `#F1F5F9` chalk white text, `#7C3AED` tactile buttons with `#4C1D95` bottom lip, and `#C084FC` / `#D946EF` candy purple & fuchsia accents. +5. **Header & Mobile 3-Line Drawer Rule**: + - Do not put a `"Get Started"` CTA button inside the top header (`#site-header`). Keep the header clean with the AJ circular purple medallion + `CodingCat.dev` logo, desktop nav links (`lg:flex`), and on the right `Search`, `Ask Agent`, `ThemeToggle`, and on mobile/tablet (`lg:hidden`) the 3-line Hamburger Menu (`#nav-drawer-toggle`) opening `#nav-drawer`. +6. **Canonical 4-Font Typography**: + - `Nunito` (`800` / `900`): Chunky rounded `H1` and `H2` display titles and hero headlines. + - `Inter` (`400` to `800`): UI components, navigation, `H3`-`H6` subheadings, and long-form prose. + - `JetBrains Mono` (`400` to `700`): Code blocks, terminal snippets, badge tags, and metadata. + - `Virgil`: Hand-drawn annotations, sticky notes, and labels inside visual diagrams. +7. **AJ the Cat Mascot Guardrails**: Always reference canonical assets in `assets/` (`AJHeadphones.png`, `AJ-2D-Bipedal.jpg`, `AJ-3D-Headphones-Front.jpg`, `AJ-3D-Headphones-Left.jpg`, `AJ-3D-Headphones-Right.jpg`). Full-body AJ is always upright bipedal on two legs, wearing Royal Purple/Lavender podcast headphones and a hexagonal `"AJ"` collar tag. + +--- + +## 2. The 13-Module Skill & Design System Router + +Before writing UI code, drafting content, or generating visual assets, load the relevant skill module from `skills/` (or fetch it dynamically via the MCP server tools `list_codingcat_rules`, `get_codingcat_rules`, and `get_codingcat_tokens`): + +| # | Category | Skill / Reference Path | When to Load | +| :--- | :--- | :--- | :--- | +| **01** | **Overview** | `skills/codingcat-design-system/references/01-overview.md` | Brand ethos, canonical terminology (Courses, Podcasts, Blog, Diagrams), AJ vs. Alex Patterson | +| **02** | **Colors** | `skills/codingcat-design-system/references/02-colors.md` | Dual-theme tokens (Light `#FAF9FC`/`#2A1155`/`#7C3AED` & Dark `#0B1326`/`#131B2E`/`#7C3AED`/`#C084FC`) | +| **03** | **Typography** | `skills/codingcat-design-system/references/03-typography.md` | `Nunito` (H1/H2), `Inter` (UI/H3-H6), `JetBrains Mono` (code/badges), `Virgil` (diagrams) | +| **04** | **Spacing** | `skills/codingcat-design-system/references/04-spacing.md` | `4px` base grid, `1280px` max container, YouTube 16:9 and Shorts 9:16 safe zones | +| **05** | **Corner Radius** | `skills/codingcat-design-system/references/05-corner-radius.md` | `.hand-border`, `.hand-border-rect`, `rounded-xl` to `rounded-3xl`, and `rounded-full` | +| **06** | **Shadows** | `skills/codingcat-design-system/references/06-shadows.md` | `.shadow-sketch`, `.shadow-sketch-sm`, `.shadow-sketch-lg`, `.tactile-btn` | +| **07** | **Focus** | `skills/codingcat-design-system/references/07-focus.md` | Keyboard accessibility focus rings (`#7C3AED` and `#C084FC`) | +| **08** | **Components** | `skills/codingcat-design-system/references/08-components.md` | Header & mobile 3-line drawer, Hero CTAs, Course/Podcast/Blog cards, Visual Diagrams, Footer | +| **09** | **Assets** | `skills/codingcat-design-system/references/09-assets.md` | Canonical 2D and 3D AJ mascot assets in `assets/` and anatomical rules | +| **10** | **Files** | `skills/codingcat-design-system/references/10-files.md` | `tokens/tokens.json`, `tokens/theme.css`, MDX frontmatter schemas, social templates | +| **11** | **Voice & Copy** | `skills/alex-voice-and-copy/SKILL.md` | `@alex.patterson` writing style, canonical terminology, zero em-dashes, comparison tables | +| **12** | **Visual Prompts** | `skills/codingcat-media-studio/SKILL.md` | Hand-drawn architecture diagrams, 2D bipedal & 3D vinyl-toy AJ prompts, 16:9 YouTube thumbnails | +| **13** | **Video & Motion** | `skills/codingcat-media-studio/references/youtube-intros-and-video.md` | First-15-second retention hooks, presenter cutaways, lower-thirds, 9:16 Shorts safe zones | + +--- + +## 3. Monorepo Packages & Technical Conventions + +| Path | Package | Description | +| :--- | :--- | :--- | +| `apps/site` | `@codingcatdev/site` | Astro 7 SSR on Cloudflare Workers (public site) | +| `apps/sanity` | `@codingcatdev/sanity` | Sanity Studio v6 | +| `apps/mcp-server` | `@codingcatdev/mcp-server` | Cloudflare Worker (Hono + `@modelcontextprotocol/sdk`) serving dynamic CodingCat.dev rules & tokens | +| `tokens/` | Design Tokens | W3C `tokens.json` and Tailwind v4 `theme.css` | +| `skills/` | Agent Skills | `codingcat-design-system`, `alex-voice-and-copy`, `codingcat-media-studio` | diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 000000000..596dee881 --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,45 @@ +# CodingCat.dev Canonical Design System (2026 Dual-Theme Chalkboard & Royal Purple) + +This document defines the canonical design system for CodingCat.dev based on the Google Stitch reference screens: +- **Light Mode (Chalkboard Paper)**: `https://stitch.withgoogle.com/projects/3020591313534241286?node-id=8d1319903d504a79ae56110486455e17` +- **Dark Mode (Obsidian Chalkboard)**: `https://stitch.withgoogle.com/projects/3020591313534241286?node-id=b9e00f99c0d34e9884bf7766a014577b` + +## 1. Canonical Content Pillars & Terminology + +1. **Three Content Pillars (Matching Sanity Document Types)**: + - **Courses** (`/courses` -> `/course/[slug]`): Structured learning made up of **Lessons** (`Explore Courses →`, `Start Course →`). + - **Podcasts** (`/podcasts` -> `/podcast/[slug]`): Video and audio conversations made up of **Episodes** (`Watch Podcasts`, `Watch Episode →`). + - **Blog** (`/blog` -> `/post/[slug]`): Written articles and code guides made up of **Blog Posts** (`Read Blog`, `Read Post →`). +2. **No Invented Synonyms**: Never call content `"Teardowns"`, `"Blueprints"`, `"Curriculum"`, `"Units"`, `"Boss Node"`, or `"Skill Trees"`. +3. **Diagrams Terminology**: Never write the brand word `"Excalidraw"` in user-facing UI labels, headings, filenames, or captions. Always refer to them simply as **Diagrams**, **Visual Diagrams**, or **Architecture Diagrams** in user-facing copy. + +## 2. Visual Direction & Dual-Theme Philosophy + +CodingCat.dev blends Duolingo-inspired playful educational UI with hand-drawn architectural diagrams, sticky notes, and real code. Both Light Mode and Dark Mode are first-class citizens: +- **Light Mode (`:root`)** uses a warm Chalkboard Paper background (`#FAF9FC`) with a subtle lavender dot grid (`#D8B4FE`), crisp white cards (`#FFFFFF`), deep Royal Purple ink (`#2A1155`), and hard-offset sketch shadows (`3px 4px 0 #2A1155`). +- **Dark Mode (`.dark`)** uses an Obsidian Chalkboard background (`#0B1326`) with ambient purple/fuchsia radial glows, slate-obsidian cards (`#131B2E` / `#171F33`), deep code/diagram wells (`#060E20`), chalk-white sketch borders (`rgba(255, 255, 255, 0.22)`), and dark offset sketch shadows (`3px 4px 0 rgba(0, 0, 0, 0.75)`). + +## 3. Dual-Theme Color Tokens + +| Token Role | Light Mode (`8d1319903d504a79ae56110486455e17`) | Dark Mode (`b9e00f99c0d34e9884bf7766a014577b`) | CSS Custom Property | +| :--- | :--- | :--- | :--- | +| **Page Canvas** | `#FAF9FC` (`brand.chalk`) + `#D8B4FE` dot grid | `#0B1326` (`obsidian.DEFAULT`) + radial glows & dot grid | `--cc-bg-primary` | +| **Secondary Canvas** | `#F5F3FB` (`brand.canvas`) | `#131B2E` (`obsidian.surface`) | `--cc-bg-canvas` | +| **Card / Whiteboard** | `#FFFFFF` (`brand.paper`) | `#171F33` (`obsidian.card`) | `--cc-card` | +| **Deep Code / Video Well** | `#2A1155` (`brand.dark`) | `#060E20` (`obsidian.deep`) | `--cc-bg-void` | +| **Primary Ink / Text** | `#2A1155` (`brand.dark`) | `#F1F5F9` (`chalk.white`) | `--cc-text-primary` | +| **Secondary Body Text** | `#4C1D95` (`purple-900`) | `#CBD5E1` (`slate-300`) | `--cc-text-secondary` | +| **Muted / Accent Text** | `#6B21A8` (`purple-800`) | `#D8B4FE` (`purple-300`) | `--cc-text-muted` | +| **Primary Brand Purple** | `#7C3AED` (hover `#8B5CF6`) | `#7C3AED` (hover `#8B5CF6`, lip `#4C1D95`) | `--cc-purple-primary` | +| **Candy / Fuchsia Accent** | `#A855F7` / `#D946EF` | `#C084FC` (`chalk.candy`) / `#D946EF` | `--cc-candy` | +| **Sketch Border** | `2px solid #2A1155` | `2px solid rgba(255, 255, 255, 0.22)` | `--cc-border-sketch` | +| **Sunny Yellow (Sticky/Node)** | `#FEF08A` (text `#713F12`, border `#2A1155`) | Sticky `#FEF08A` / Node `rgba(66, 32, 6, 0.8)` (`#FACC15` border) | `--cc-yellow-bg` | +| **Sky Blue (Node/Header)** | `#BAE6FD` (text `#0369A1`, border `#2A1155`) | `rgba(8, 47, 73, 0.8)` (`#38BDF8` border, `#BAE6FD` text) | `--cc-sky-bg` | +| **Candy Pink (Node/Header)** | `#FBCFE8` (text `#9D174D`, border `#2A1155`) | `rgba(80, 7, 36, 0.55)` (`#F472B6` border, `#F9A8D4` text) | `--cc-pink-bg` | +| **Lilac (Node/Header)** | `#EDE9FE` (text `#5B21B6`, border `#2A1155`) | `rgba(59, 7, 100, 0.65)` (`#C084FC` border, `#E9D5FF` text) | `--cc-lilac-bg` | +| **Mint / Emerald Green** | `#86EFAC` / `#58CC02` (pill `#DCFCE7`, text `#166534`) | `#86EFAC` / `#34D399` (pill `rgba(2, 44, 34, 0.8)`, text `#6EE7B7`) | `--cc-mint` | + +## 4. Header & Mobile 3-Line Navigation Drawer + +- The top header (`#site-header`) is a floating `rounded-full` pill bar containing the AJ circular purple medallion + `CodingCat.dev` logo on the left, desktop navigation links (`Courses`, `Podcasts`, `Blog`, `Sponsors`, `Sponsorships` on `lg:flex`), and on the right `Search`, `Ask Agent`, `ThemeToggle`, and on ` `/course/[slug]`), made of **Lessons** (`Explore Courses →`, `Start Course →`). + - **Podcasts** (`/podcasts` -> `/podcast/[slug]`), made of **Episodes** (`Watch Podcasts`, `Watch Episode →`). + - **Blog** (`/blog` -> `/post/[slug]`), made of **Blog Posts** (`Read Blog`, `Read Post →`). + - **Diagrams**: Never write the brand word `"Excalidraw"` in user-facing UI copy, badges, or captions; call them **Diagrams**, **Visual Diagrams**, or **Architecture Diagrams**. Never invent synonyms like `"Teardowns"`, `"Blueprints"`, `"Curriculum"`, `"Units"`, or `"Skill Trees"`. +2. **Zero Em-Dashes**: Never use the em-dash character anywhere in prose, UI copy, markdown, or code comments. +3. **Always Use Tables for Comparisons**: Render Markdown or HTML tables whenever comparing two or more items. +4. **Header & Mobile Drawer**: Never add a `"Get Started"` button to `#site-header`. Keep the mobile header clean with `Search`, `Ask Agent`, `ThemeToggle`, and the 3-line menu toggle (`#nav-drawer-toggle`). diff --git a/apps/sanity/extract.json b/apps/sanity/extract.json index dcfd6820b..0dcd36d94 100644 --- a/apps/sanity/extract.json +++ b/apps/sanity/extract.json @@ -2408,6 +2408,41 @@ }, "optional": true }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { @@ -2431,7 +2466,88 @@ { "type": "object", "attributes": { - "html": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -2442,7 +2558,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "htmlBlock" + "value": "socialEmbed" } } }, @@ -2461,238 +2577,56 @@ { "type": "object", "attributes": { - "content": { + "platform": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" - }, - { - "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] - } - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } - } + ] }, "optional": true }, @@ -2703,11 +2637,39 @@ }, "optional": true }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { "type": "string", - "value": "quote" + "value": "bluesky" } } }, @@ -2726,323 +2688,202 @@ { "type": "object", "attributes": { - "_key": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "linkedin" } } }, "rest": { - "type": "inline", - "name": "table" + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } } - } - ] - } - }, - "optional": true - }, - "url": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - }, - { - "name": "author", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "author" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "coverImage": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "coverImage" - }, - "optional": true - }, - "date": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "slug": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "slug" - }, - "optional": true - }, - "excerpt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "featured": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "content": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ + }, { "type": "object", "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { + "platform": { "type": "objectAttribute", "value": { "type": "union", "of": [ { "type": "string", - "value": "normal" + "value": "auto" }, { "type": "string", - "value": "h1" + "value": "x" }, { "type": "string", - "value": "h2" + "value": "bluesky" }, { "type": "string", - "value": "h3" + "value": "linkedin" }, { "type": "string", - "value": "h4" + "value": "reddit" }, { "type": "string", - "value": "h5" + "value": "tiktok" }, { "type": "string", - "value": "h6" + "value": "instagram" }, { "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ + "value": "threads" + }, { "type": "string", - "value": "bullet" + "value": "mastodon" }, { "type": "string", - "value": "number" + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } ] }, "optional": true }, - "markDefs": { + "url": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] - } + "type": "string" }, "optional": true }, - "level": { + "author": { "type": "objectAttribute", "value": { - "type": "number" + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -3050,7 +2891,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "block" + "value": "reddit" } } }, @@ -3069,76 +2910,88 @@ { "type": "object", "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageAsset.reference" - }, - "optional": true - }, - "media": { + "platform": { "type": "objectAttribute", "value": { - "type": "unknown" + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "hotspot": { + "url": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageHotspot" + "type": "string" }, "optional": true }, - "crop": { + "author": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageCrop" + "type": "string" }, "optional": true }, - "_type": { + "handle": { "type": "objectAttribute", "value": { - "type": "string", - "value": "image" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "_key": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { "type": "objectAttribute", "value": { "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "code" - } - }, - { - "type": "object", - "attributes": { - "youtube": { + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -3149,7 +3002,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtube" + "value": "tiktok" } } }, @@ -3168,40 +3021,88 @@ { "type": "object", "attributes": { - "shorts": { + "platform": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "string" - } + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "_type": { + "url": { "type": "objectAttribute", "value": { - "type": "string", - "value": "youtubeShorts" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "url": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -3212,7 +3113,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "codepen" + "value": "instagram" } } }, @@ -3231,6 +3132,59 @@ { "type": "object", "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -3238,30 +3192,28 @@ }, "optional": true }, - "_type": { + "author": { "type": "objectAttribute", "value": { - "type": "string", - "value": "codesandbox" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "id": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -3272,7 +3224,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "twitter" + "value": "threads" } } }, @@ -3291,10 +3243,232 @@ { "type": "object", "attributes": { - "html": { + "platform": { "type": "objectAttribute", "value": { - "type": "string" + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "mastodon" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "githubGist" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "html": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -3603,167 +3777,62 @@ }, "optional": true }, - "socials": { + "url": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "socials" + "type": "string" }, "optional": true }, - "websites": { + "matchDomains": { "type": "objectAttribute", "value": { "type": "array", "of": { - "type": "object", - "attributes": { - "site": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "link": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "link" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "site" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } + "type": "string" } }, "optional": true }, - "portalToken": { + "couponCode": { "type": "objectAttribute", "value": { "type": "string" }, "optional": true }, - "portalTokenExpiresAt": { + "rewriteMode": { "type": "objectAttribute", "value": { - "type": "string" + "type": "union", + "of": [ + { + "type": "string", + "value": "root_or_append" + }, + { + "type": "string", + "value": "append_params" + }, + { + "type": "string", + "value": "replace_root_only" + } + ] + }, + "optional": true + }, + "active": { + "type": "objectAttribute", + "value": { + "type": "boolean" }, "optional": true } } }, { - "type": "type", - "name": "transcript.reference", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "transcript" - } - }, - { - "type": "type", - "name": "author.reference", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "author" - } - }, - { - "type": "type", - "name": "syndication.reference", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "syndication" - } - }, - { - "name": "post", + "name": "author", "type": "document", "attributes": { "_id": { @@ -3776,7 +3845,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "post" + "value": "author" } }, "_createdAt": { @@ -4278,6 +4347,41 @@ }, "optional": true }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { @@ -4301,7 +4405,88 @@ { "type": "object", "attributes": { - "html": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -4312,7 +4497,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "htmlBlock" + "value": "socialEmbed" } } }, @@ -4331,238 +4516,56 @@ { "type": "object", "attributes": { - "content": { + "platform": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" - }, - { - "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] - } - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } - } + ] }, "optional": true }, @@ -4573,11 +4576,39 @@ }, "optional": true }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { "type": "string", - "value": "quote" + "value": "bluesky" } } }, @@ -4596,305 +4627,5815 @@ { "type": "object", "attributes": { - "_key": { + "platform": { "type": "objectAttribute", "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "table" - } - } - ] - } - }, - "optional": true - }, - "videoCloudinary": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "videoCloudinary" - }, - "optional": true - }, - "youtube": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "transcript": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "transcript.reference" - }, - "optional": true - }, - "author": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "author.reference" - } - } - }, - "optional": true - }, - "sponsor": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sponsor.reference" - } - } - }, - "optional": true - }, - "devto": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "hashnode": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "awsbuilder": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "dailydev": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "medium": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "reddit": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "tags": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "label": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "value": { - "type": "objectAttribute", - "value": { - "type": "string" + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "linkedin" + } + } }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "tag" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } } } - } - } - } - }, - "optional": true - }, - "syndications": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "syndication.reference" - } - } - }, - "optional": true - }, - "statistics": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "statistics" - }, - "optional": true - }, - "views": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "ogTitle": { - "type": "objectAttribute", + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reddit" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tiktok" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "instagram" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "threads" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "mastodon" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "githubGist" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "html": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "htmlBlock" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "quote" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "table" + } + } + ] + } + }, + "optional": true + }, + "socials": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "socials" + }, + "optional": true + }, + "websites": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "site": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "link": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "link" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "site" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "portalToken": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "portalTokenExpiresAt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + } + } + }, + { + "type": "type", + "name": "transcript.reference", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "transcript" + } + }, + { + "type": "type", + "name": "author.reference", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "author" + } + }, + { + "type": "type", + "name": "syndication.reference", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "syndication" + } + }, + { + "name": "post", + "type": "document", + "attributes": { + "_id": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "post" + } + }, + "_createdAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_updatedAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_rev": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "coverImage": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "coverImage" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "title": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "slug": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "slug" + }, + "optional": true + }, + "excerpt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "featured": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "asset": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageAsset.reference" + }, + "optional": true + }, + "media": { + "type": "objectAttribute", + "value": { + "type": "unknown" + }, + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "code" + } + }, + { + "type": "object", + "attributes": { + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtube" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "shorts": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtubeShorts" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codepen" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codesandbox" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "id": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "twitter" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "socialEmbed" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "bluesky" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "linkedin" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reddit" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tiktok" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "instagram" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "threads" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "mastodon" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "githubGist" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "html": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "htmlBlock" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "quote" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "table" + } + } + ] + } + }, + "optional": true + }, + "videoCloudinary": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "videoCloudinary" + }, + "optional": true + }, + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "transcript": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "transcript.reference" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "author.reference" + } + } + }, + "optional": true + }, + "sponsor": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "sponsor.reference" + } + } + }, + "optional": true + }, + "devto": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "hashnode": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "awsbuilder": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "dailydev": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "medium": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "reddit": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "tags": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "label": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "value": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tag" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "syndications": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "syndication.reference" + } + } + }, + "optional": true + }, + "statistics": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "statistics" + }, + "optional": true + }, + "views": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "ogTitle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "ogDescription": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "twitterCardType": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "noIndex": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + } + }, + { + "type": "type", + "name": "podcastType.reference", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "podcastType" + } + }, + { + "type": "type", + "name": "guest.reference", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "guest" + } + }, + { + "name": "podcast", + "type": "document", + "attributes": { + "_id": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "podcast" + } + }, + "_createdAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_updatedAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_rev": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "coverImage": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "coverImage" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "title": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "slug": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "slug" + }, + "optional": true + }, + "excerpt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "featured": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "asset": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageAsset.reference" + }, + "optional": true + }, + "media": { + "type": "objectAttribute", + "value": { + "type": "unknown" + }, + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "code" + } + }, + { + "type": "object", + "attributes": { + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtube" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "shorts": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtubeShorts" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codepen" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codesandbox" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "id": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "twitter" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "socialEmbed" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "bluesky" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "linkedin" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reddit" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tiktok" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "instagram" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "threads" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "mastodon" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "githubGist" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "html": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "htmlBlock" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "quote" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "table" + } + } + ] + } + }, + "optional": true + }, + "videoCloudinary": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "videoCloudinary" + }, + "optional": true + }, + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "transcript": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "transcript.reference" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "author.reference" + } + } + }, + "optional": true + }, + "sponsor": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "sponsor.reference" + } + } + }, + "optional": true + }, + "devto": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "hashnode": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "awsbuilder": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "dailydev": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "medium": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "reddit": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "tags": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "label": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "value": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tag" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "syndications": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "syndication.reference" + } + } + }, + "optional": true + }, + "statistics": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "statistics" + }, + "optional": true + }, + "views": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "ogTitle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "ogDescription": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "twitterCardType": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "noIndex": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "podcastType": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "podcastType.reference" + }, + "optional": true + }, + "season": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "episode": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "recordingDate": { + "type": "objectAttribute", "value": { "type": "string" }, "optional": true }, - "ogDescription": { + "guest": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "guest.reference" + } + } + }, + "optional": true + }, + "pick": { "type": "objectAttribute", "value": { - "type": "string" + "type": "array", + "of": { + "type": "object", + "attributes": { + "user": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "guest.reference" + }, + { + "type": "inline", + "name": "author.reference" + } + ] + }, + "optional": true + }, + "name": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "site": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } }, "optional": true }, - "twitterCardType": { + "spotify": { "type": "objectAttribute", "value": { - "type": "string" + "type": "inline", + "name": "podcastRssEpisode" }, "optional": true }, - "noIndex": { + "listenLinks": { "type": "objectAttribute", "value": { - "type": "boolean" + "type": "object", + "attributes": { + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "spotify": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "apple": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "overcast": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "pocketCasts": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "castbox": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "castro": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "rss": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + } + } }, "optional": true } } }, { + "name": "podcastRssEpisode", "type": "type", - "name": "podcastType.reference", "value": { "type": "object", "attributes": { - "_ref": { + "_type": { "type": "objectAttribute", "value": { - "type": "string" + "type": "string", + "value": "podcastRssEpisode" } }, - "_type": { + "title": { "type": "objectAttribute", "value": { - "type": "string", - "value": "reference" - } + "type": "string" + }, + "optional": true }, - "_weak": { + "description": { "type": "objectAttribute", "value": { - "type": "boolean" + "type": "string" }, "optional": true - } - }, - "dereferencesTo": "podcastType" - } - }, - { - "type": "type", - "name": "guest.reference", - "value": { - "type": "object", - "attributes": { - "_ref": { + }, + "link": { "type": "objectAttribute", "value": { "type": "string" - } + }, + "optional": true }, - "_type": { + "guid": { "type": "objectAttribute", "value": { - "type": "string", - "value": "reference" - } + "type": "inline", + "name": "guid" + }, + "optional": true }, - "_weak": { + "pubDate": { "type": "objectAttribute", "value": { - "type": "boolean" + "type": "string" + }, + "optional": true + }, + "enclosures": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "length": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "type": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "enclosure" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "itunes": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "itunes" }, "optional": true } - }, - "dereferencesTo": "guest" + } } }, { - "name": "podcast", + "name": "guest", "type": "document", "attributes": { "_id": { @@ -4907,7 +10448,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "podcast" + "value": "guest" } }, "_createdAt": { @@ -4982,208 +10523,1131 @@ { "type": "object", "attributes": { - "children": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "asset": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageAsset.reference" + }, + "optional": true + }, + "media": { + "type": "objectAttribute", + "value": { + "type": "unknown" + }, + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "code" + } + }, + { + "type": "object", + "attributes": { + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtube" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "shorts": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtubeShorts" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codepen" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codesandbox" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "id": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "twitter" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "socialEmbed" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "bluesky" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "linkedin" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" } - }, - "optional": true - }, - "style": { + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { "type": "objectAttribute", "value": { "type": "union", "of": [ { "type": "string", - "value": "normal" + "value": "auto" }, { "type": "string", - "value": "h1" + "value": "x" }, { "type": "string", - "value": "h2" + "value": "bluesky" }, { "type": "string", - "value": "h3" + "value": "linkedin" }, { "type": "string", - "value": "h4" + "value": "reddit" }, { "type": "string", - "value": "h5" + "value": "tiktok" }, { "type": "string", - "value": "h6" + "value": "instagram" }, { "type": "string", - "value": "blockquote" + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } ] }, "optional": true }, - "listItem": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reddit" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { "type": "objectAttribute", "value": { "type": "union", "of": [ { "type": "string", - "value": "bullet" + "value": "auto" }, { "type": "string", - "value": "number" + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } ] }, "optional": true }, - "markDefs": { + "url": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tiktok" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "level": { + "url": { "type": "objectAttribute", "value": { - "type": "number" + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -5191,7 +11655,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "block" + "value": "instagram" } } }, @@ -5210,34 +11674,91 @@ { "type": "object", "attributes": { - "asset": { + "platform": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageAsset.reference" + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "media": { + "url": { "type": "objectAttribute", "value": { - "type": "unknown" + "type": "string" }, "optional": true }, - "hotspot": { + "author": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageHotspot" + "type": "string" }, "optional": true }, - "crop": { + "handle": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageCrop" + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -5245,7 +11766,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "image" + "value": "threads" } } }, @@ -5264,22 +11785,88 @@ { "type": "object", "attributes": { - "_key": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { "type": "objectAttribute", "value": { "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "code" - } - }, - { - "type": "object", - "attributes": { - "youtube": { + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -5290,7 +11877,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtube" + "value": "mastodon" } } }, @@ -5309,13 +11896,91 @@ { "type": "object", "attributes": { - "shorts": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "string" - } + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -5323,7 +11988,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtubeShorts" + "value": "githubGist" } } }, @@ -5342,7 +12007,7 @@ { "type": "object", "attributes": { - "url": { + "html": { "type": "objectAttribute", "value": { "type": "string" @@ -5353,7 +12018,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "codepen" + "value": "htmlBlock" } } }, @@ -5372,6 +12037,241 @@ { "type": "object", "attributes": { + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" + }, + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" + } + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -5383,7 +12283,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "codesandbox" + "value": "quote" } } }, @@ -5402,305 +12302,383 @@ { "type": "object", "attributes": { - "id": { + "_key": { "type": "objectAttribute", "value": { "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "twitter" } } }, "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } + "type": "inline", + "name": "table" } + } + ] + } + }, + "optional": true + }, + "socials": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "socials" + }, + "optional": true + }, + "websites": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "site": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true }, - { - "type": "object", - "attributes": { - "html": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "htmlBlock" - } - } + "link": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "link" }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "site" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" } } - }, + } + } + } + }, + "optional": true + }, + "portalToken": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "portalTokenExpiresAt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + } + } + }, + { + "name": "podcastType", + "type": "document", + "attributes": { + "_id": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "podcastType" + } + }, + "_createdAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_updatedAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_rev": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "coverImage": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "coverImage" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "title": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "slug": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "slug" + }, + "optional": true + }, + "excerpt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "featured": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "content": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ { "type": "object", "attributes": { - "content": { + "children": { "type": "objectAttribute", "value": { "type": "array", "of": { "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" } }, "optional": true }, - "style": { + "text": { "type": "objectAttribute", "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] + "type": "string" }, "optional": true }, - "listItem": { + "_type": { "type": "objectAttribute", "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" }, - { + "optional": true + }, + "blank": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { "type": "string", - "value": "number" + "value": "link" } - ] + } }, - "optional": true + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } + { + "type": "object", + "attributes": { + "reference": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "inline", + "name": "post.reference" }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } + { + "type": "inline", + "name": "podcast.reference" + }, + { + "type": "inline", + "name": "page.reference" } - } - ] + ] + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "internalLink" + } } }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } } } } - } + ] } }, "optional": true }, - "url": { + "level": { "type": "objectAttribute", "value": { - "type": "string" + "type": "number" }, "optional": true }, @@ -5708,7 +12686,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "quote" + "value": "block" } } }, @@ -5727,823 +12705,681 @@ { "type": "object", "attributes": { - "_key": { + "asset": { "type": "objectAttribute", "value": { - "type": "string" + "type": "inline", + "name": "sanity.imageAsset.reference" + }, + "optional": true + }, + "media": { + "type": "objectAttribute", + "value": { + "type": "unknown" + }, + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" } } }, "rest": { - "type": "inline", - "name": "table" - } - } - ] - } - }, - "optional": true - }, - "videoCloudinary": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "videoCloudinary" - }, - "optional": true - }, - "youtube": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "transcript": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "transcript.reference" - }, - "optional": true - }, - "author": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "author.reference" - } - } - }, - "optional": true - }, - "sponsor": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } } - } - }, - "rest": { - "type": "inline", - "name": "sponsor.reference" - } - } - }, - "optional": true - }, - "devto": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "hashnode": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "awsbuilder": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "dailydev": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "medium": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "reddit": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "tags": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "label": { - "type": "objectAttribute", - "value": { - "type": "string" + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } }, - "optional": true + "rest": { + "type": "inline", + "name": "code" + } }, - "value": { - "type": "objectAttribute", - "value": { - "type": "string" + { + "type": "object", + "attributes": { + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtube" + } + } }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "tag" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } } } - } - } - } - }, - "optional": true - }, - "syndications": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + }, + { + "type": "object", + "attributes": { + "shorts": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtubeShorts" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } } - } - }, - "rest": { - "type": "inline", - "name": "syndication.reference" - } - } - }, - "optional": true - }, - "statistics": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "statistics" - }, - "optional": true - }, - "views": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "ogTitle": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "ogDescription": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "twitterCardType": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "noIndex": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "podcastType": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "podcastType.reference" - }, - "optional": true - }, - "season": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "episode": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "recordingDate": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "guest": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codepen" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } } - } - }, - "rest": { - "type": "inline", - "name": "guest.reference" - } - } - }, - "optional": true - }, - "pick": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "user": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "guest.reference" + }, + { + "type": "object", + "attributes": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" }, - { - "type": "inline", - "name": "author.reference" + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "codesandbox" } - ] - }, - "optional": true - }, - "name": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "site": { - "type": "objectAttribute", - "value": { - "type": "string" + } }, - "optional": true - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } } } - } - } - } - }, - "optional": true - }, - "spotify": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "podcastRssEpisode" - }, - "optional": true - }, - "listenLinks": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "youtube": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "spotify": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "apple": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "overcast": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "pocketCasts": { - "type": "objectAttribute", - "value": { - "type": "string" }, - "optional": true - }, - "castbox": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "castro": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "rss": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - }, - "optional": true - } - } - }, - { - "name": "podcastRssEpisode", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "podcastRssEpisode" - } - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "description": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "link": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "guid": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "guid" - }, - "optional": true - }, - "pubDate": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "enclosures": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "url": { - "type": "objectAttribute", - "value": { - "type": "string" + { + "type": "object", + "attributes": { + "id": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true }, - "optional": true - }, - "length": { - "type": "objectAttribute", - "value": { - "type": "number" + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true }, - "optional": true - }, - "type": { - "type": "objectAttribute", - "value": { - "type": "string" + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true }, - "optional": true + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "twitter" + } + } }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "enclosure" + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } } } }, - "rest": { + { "type": "object", "attributes": { - "_key": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { "type": "objectAttribute", "value": { "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "socialEmbed" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } } } } - } - } - }, - "optional": true - }, - "itunes": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "itunes" - }, - "optional": true - } - } - } - }, - { - "name": "guest", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "guest" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "coverImage": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "coverImage" - }, - "optional": true - }, - "date": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "slug": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "slug" - }, - "optional": true - }, - "excerpt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "featured": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "content": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ + }, { "type": "object", "attributes": { - "children": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } + "type": "string" }, "optional": true }, - "style": { + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "bluesky" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { "type": "objectAttribute", "value": { "type": "union", "of": [ { "type": "string", - "value": "normal" + "value": "auto" }, { "type": "string", - "value": "h1" + "value": "x" }, { "type": "string", - "value": "h2" + "value": "bluesky" }, { "type": "string", - "value": "h3" + "value": "linkedin" }, { "type": "string", - "value": "h4" + "value": "reddit" }, { "type": "string", - "value": "h5" + "value": "tiktok" }, { "type": "string", - "value": "h6" + "value": "instagram" }, { "type": "string", - "value": "blockquote" + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } ] }, "optional": true }, - "listItem": { + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "linkedin" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { "type": "objectAttribute", "value": { "type": "union", "of": [ { "type": "string", - "value": "bullet" + "value": "auto" }, { "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] - } + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "level": { + "url": { "type": "objectAttribute", "value": { - "type": "number" + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -6551,7 +13387,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "block" + "value": "reddit" } } }, @@ -6570,34 +13406,91 @@ { "type": "object", "attributes": { - "asset": { + "platform": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageAsset.reference" + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "media": { + "url": { "type": "objectAttribute", "value": { - "type": "unknown" + "type": "string" }, "optional": true }, - "hotspot": { + "author": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageHotspot" + "type": "string" }, "optional": true }, - "crop": { + "handle": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageCrop" + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -6605,7 +13498,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "image" + "value": "tiktok" } } }, @@ -6624,58 +13517,91 @@ { "type": "object", "attributes": { - "_key": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { "type": "objectAttribute", "value": { "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "code" - } - }, - { - "type": "object", - "attributes": { - "youtube": { + }, + "optional": true + }, + "author": { "type": "objectAttribute", "value": { "type": "string" }, "optional": true }, - "_type": { + "handle": { "type": "objectAttribute", "value": { - "type": "string", - "value": "youtube" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "shorts": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "string" - } + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -6683,7 +13609,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtubeShorts" + "value": "instagram" } } }, @@ -6702,6 +13628,59 @@ { "type": "object", "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -6709,11 +13688,39 @@ }, "optional": true }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { "type": "string", - "value": "codepen" + "value": "threads" } } }, @@ -6732,6 +13739,59 @@ { "type": "object", "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -6739,11 +13799,39 @@ }, "optional": true }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { "type": "string", - "value": "codesandbox" + "value": "mastodon" } } }, @@ -6762,7 +13850,88 @@ { "type": "object", "attributes": { - "id": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -6773,7 +13942,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "twitter" + "value": "githubGist" } } }, @@ -7103,78 +14272,11 @@ } }, "optional": true - }, - "socials": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "socials" - }, - "optional": true - }, - "websites": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "site": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "link": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "link" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "site" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "portalToken": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "portalTokenExpiresAt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true } } }, { - "name": "podcastType", + "name": "page", "type": "document", "attributes": { "_id": { @@ -7187,7 +14289,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "podcastType" + "value": "page" } }, "_createdAt": { @@ -7516,8 +14618,53 @@ "crop": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageCrop" + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "code" + } + }, + { + "type": "object", + "attributes": { + "youtube": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -7525,7 +14672,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "image" + "value": "youtube" } } }, @@ -7544,22 +14691,40 @@ { "type": "object", "attributes": { - "_key": { + "shorts": { "type": "objectAttribute", "value": { - "type": "string" + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "youtubeShorts" } } }, "rest": { - "type": "inline", - "name": "code" + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } } }, { "type": "object", "attributes": { - "youtube": { + "url": { "type": "objectAttribute", "value": { "type": "string" @@ -7570,7 +14735,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtube" + "value": "codepen" } } }, @@ -7589,13 +14754,10 @@ { "type": "object", "attributes": { - "shorts": { + "url": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "string" - } + "type": "string" }, "optional": true }, @@ -7603,7 +14765,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtubeShorts" + "value": "codesandbox" } } }, @@ -7622,6 +14784,13 @@ { "type": "object", "attributes": { + "id": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -7629,11 +14798,39 @@ }, "optional": true }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "date": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { "type": "string", - "value": "codepen" + "value": "twitter" } } }, @@ -7652,6 +14849,59 @@ { "type": "object", "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -7659,11 +14909,39 @@ }, "optional": true }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, "_type": { "type": "objectAttribute", "value": { "type": "string", - "value": "codesandbox" + "value": "socialEmbed" } } }, @@ -7682,7 +14960,88 @@ { "type": "object", "attributes": { - "id": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -7693,7 +15052,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "twitter" + "value": "bluesky" } } }, @@ -7712,272 +15071,88 @@ { "type": "object", "attributes": { - "html": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { "type": "objectAttribute", "value": { "type": "string" }, "optional": true }, - "_type": { + "author": { "type": "objectAttribute", "value": { - "type": "string", - "value": "htmlBlock" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "content": { + "type": "string" + }, + "optional": true + }, + "handle": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" - }, - { - "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] - } - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } + "type": "string" }, "optional": true }, - "url": { + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -7988,7 +15163,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "quote" + "value": "linkedin" } } }, @@ -8007,316 +15182,313 @@ { "type": "object", "attributes": { - "_key": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reddit" } } }, "rest": { - "type": "inline", - "name": "table" + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } } - } - ] - } - }, - "optional": true - } - } - }, - { - "name": "page", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "page" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "coverImage": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "coverImage" - }, - "optional": true - }, - "date": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "slug": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "slug" - }, - "optional": true - }, - "excerpt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "featured": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "content": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ + }, { "type": "object", "attributes": { - "children": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } + "type": "string" }, "optional": true }, - "style": { + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "tiktok" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + }, + { + "type": "object", + "attributes": { + "platform": { "type": "objectAttribute", "value": { "type": "union", "of": [ { "type": "string", - "value": "normal" + "value": "auto" }, { "type": "string", - "value": "h1" + "value": "x" }, { "type": "string", - "value": "h2" + "value": "bluesky" }, { "type": "string", - "value": "h3" + "value": "linkedin" }, { "type": "string", - "value": "h4" + "value": "reddit" }, { "type": "string", - "value": "h5" + "value": "tiktok" }, { "type": "string", - "value": "h6" + "value": "instagram" }, { "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ + "value": "threads" + }, { "type": "string", - "value": "bullet" + "value": "mastodon" }, { "type": "string", - "value": "number" + "value": "gist" + }, + { + "type": "string", + "value": "youtube" } ] }, "optional": true }, - "markDefs": { + "url": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blank": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "reference": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "inline", - "name": "post.reference" - }, - { - "type": "inline", - "name": "podcast.reference" - }, - { - "type": "inline", - "name": "page.reference" - } - ] - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "internalLink" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - ] - } + "type": "string" }, "optional": true }, - "level": { + "author": { "type": "objectAttribute", "value": { - "type": "number" + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -8324,7 +15496,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "block" + "value": "instagram" } } }, @@ -8343,34 +15515,91 @@ { "type": "object", "attributes": { - "asset": { + "platform": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageAsset.reference" + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] }, "optional": true }, - "media": { + "url": { "type": "objectAttribute", "value": { - "type": "unknown" + "type": "string" + }, + "optional": true + }, + "author": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "handle": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, - "hotspot": { + "fallbackText": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageHotspot" + "type": "string" }, "optional": true }, - "crop": { + "caption": { "type": "objectAttribute", "value": { - "type": "inline", - "name": "sanity.imageCrop" + "type": "string" }, "optional": true }, @@ -8378,7 +15607,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "image" + "value": "threads" } } }, @@ -8397,58 +15626,91 @@ { "type": "object", "attributes": { - "_key": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, + "url": { "type": "objectAttribute", "value": { "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "code" - } - }, - { - "type": "object", - "attributes": { - "youtube": { + }, + "optional": true + }, + "author": { "type": "objectAttribute", "value": { "type": "string" }, "optional": true }, - "_type": { + "handle": { "type": "objectAttribute", "value": { - "type": "string", - "value": "youtube" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "shorts": { + "type": "string" + }, + "optional": true + }, + "fallbackText": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "string" - } + "type": "string" + }, + "optional": true + }, + "caption": { + "type": "objectAttribute", + "value": { + "type": "string" }, "optional": true }, @@ -8456,7 +15718,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "youtubeShorts" + "value": "mastodon" } } }, @@ -8475,6 +15737,59 @@ { "type": "object", "attributes": { + "platform": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "auto" + }, + { + "type": "string", + "value": "x" + }, + { + "type": "string", + "value": "bluesky" + }, + { + "type": "string", + "value": "linkedin" + }, + { + "type": "string", + "value": "reddit" + }, + { + "type": "string", + "value": "tiktok" + }, + { + "type": "string", + "value": "instagram" + }, + { + "type": "string", + "value": "threads" + }, + { + "type": "string", + "value": "mastodon" + }, + { + "type": "string", + "value": "gist" + }, + { + "type": "string", + "value": "youtube" + } + ] + }, + "optional": true + }, "url": { "type": "objectAttribute", "value": { @@ -8482,60 +15797,28 @@ }, "optional": true }, - "_type": { + "author": { "type": "objectAttribute", "value": { - "type": "string", - "value": "codepen" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "url": { + "type": "string" + }, + "optional": true + }, + "handle": { "type": "objectAttribute", "value": { "type": "string" }, "optional": true }, - "_type": { + "fallbackText": { "type": "objectAttribute", "value": { - "type": "string", - "value": "codesandbox" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "id": { + "type": "string" + }, + "optional": true + }, + "caption": { "type": "objectAttribute", "value": { "type": "string" @@ -8546,7 +15829,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "twitter" + "value": "githubGist" } } }, @@ -9627,6 +16910,67 @@ "type": "number" }, "optional": true + }, + "partnerTrackers": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "name": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "matchDomains": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "landingUrl": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "couponCode": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "utmSource": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true } } }, diff --git a/apps/sanity/schemas/custom/social-embed.ts b/apps/sanity/schemas/custom/social-embed.ts index e5e3736df..16e4ad2a4 100644 --- a/apps/sanity/schemas/custom/social-embed.ts +++ b/apps/sanity/schemas/custom/social-embed.ts @@ -1,4 +1,4 @@ -import { defineType } from "sanity"; +import { defineField, defineType } from "sanity"; import type { IconType } from "react-icons"; import { FaBluesky, @@ -13,7 +13,7 @@ import { } from "react-icons/fa6"; const socialFields = [ - { + defineField({ name: "platform", type: "string", title: "Platform", @@ -33,34 +33,34 @@ const socialFields = [ { title: "YouTube", value: "youtube" }, ], }, - }, - { + }), + defineField({ name: "url", type: "url", title: "Post URL", - validation: (rule: { required: () => unknown }) => rule.required(), - }, - { + validation: (rule) => rule.required(), + }), + defineField({ name: "author", type: "string", title: "Author Name (Optional)", - }, - { + }), + defineField({ name: "handle", type: "string", title: "Author Handle (Optional)", - }, - { + }), + defineField({ name: "fallbackText", type: "text", title: "Post Text / Fallback Excerpt (Optional)", rows: 3, - }, - { + }), + defineField({ name: "caption", type: "string", title: "Caption (Optional)", - }, + }), ]; function createPlatformEmbedSchema( diff --git a/apps/sanity/schemas/documents/sponsor.ts b/apps/sanity/schemas/documents/sponsor.ts index 2fadd917f..3b39d7393 100644 --- a/apps/sanity/schemas/documents/sponsor.ts +++ b/apps/sanity/schemas/documents/sponsor.ts @@ -11,11 +11,71 @@ export default defineType({ fields: [ ...baseType.fields, defineField({ - title: "Link", + title: "Partner Landing / Tracking Link", name: "url", type: "url", - validation: (Rule) => Rule.required(), + description: + "Canonical sponsor URL including contracted coupon or UTM parameters (e.g. https://www.sanity.io/manage?coupon=CodingCatDev)", + validation: (Rule) => + Rule.required().custom((val) => { + if (!val) return true; + try { + const parsed = new URL(val); + if ( + parsed.hostname.endsWith("sanity.io") && + !parsed.searchParams.has("coupon") + ) { + return "Sanity partner links must include ?coupon=CodingCatDev"; + } + return true; + } catch { + return "Must be a valid URL"; + } + }), + }), + defineField({ + title: "Match Domains", + name: "matchDomains", + type: "array", + of: [{ type: "string" }], + description: + "Bare domains (e.g. sanity.io, algolia.com) that automatically rewrite to use this partner's coupon or UTM parameters across the site.", + }), + defineField({ + title: "Coupon Code", + name: "couponCode", + type: "string", + description: "Partner coupon code (e.g. CodingCatDev)", + }), + defineField({ + title: "Rewrite Mode", + name: "rewriteMode", + type: "string", + initialValue: "root_or_append", + options: { + list: [ + { + title: "Rewrite root /manage to Landing URL & append params to deep links", + value: "root_or_append", + }, + { + title: "Always preserve path & append coupon/UTM query params", + value: "append_params", + }, + { + title: "Replace bare root domain only (for shortlinks like cld.media / mule.to)", + value: "replace_root_only", + }, + ], + }, + }), + defineField({ + title: "Active Partner", + name: "active", + type: "boolean", + initialValue: true, }), ], }); + diff --git a/apps/sanity/schemas/singletons/sponsorConfig.ts b/apps/sanity/schemas/singletons/sponsorConfig.ts index 33b7260f3..5090f7122 100644 --- a/apps/sanity/schemas/singletons/sponsorConfig.ts +++ b/apps/sanity/schemas/singletons/sponsorConfig.ts @@ -105,6 +105,43 @@ export default defineType({ description: "Maximum sponsor emails to send per cron run. Keeps volume manageable and avoids spam flags", initialValue: 10, }), + defineField({ + name: "partnerTrackers", + title: "Partner Link & UTM/Coupon Trackers", + type: "array", + description: + "Automatic URL rewrites applied whenever a post, podcast, or sponsor card links to a partner domain (e.g. sanity.io -> https://www.sanity.io/manage?coupon=CodingCatDev).", + of: [ + { + type: "object", + fields: [ + defineField({ name: "name", title: "Partner Name", type: "string" }), + defineField({ + name: "matchDomains", + title: "Match Domains", + type: "array", + of: [{ type: "string" }], + }), + defineField({ + name: "landingUrl", + title: "Canonical Partner URL", + type: "url", + }), + defineField({ + name: "couponCode", + title: "Coupon Code", + type: "string", + }), + defineField({ + name: "utmSource", + title: "UTM Source", + type: "string", + initialValue: "codingcatdev", + }), + ], + }, + ], + }), ], preview: { prepare() { diff --git a/apps/site/astro.config.mjs b/apps/site/astro.config.mjs index c2c8320ca..4790aa5db 100644 --- a/apps/site/astro.config.mjs +++ b/apps/site/astro.config.mjs @@ -69,6 +69,24 @@ export default defineConfig({ subsets: ["latin"], fallbacks: ["system-ui", "sans-serif"], }, + { + provider: fontProviders.google(), + name: "Caveat", + cssVariable: "--font-caveat", + weights: ["400 700"], + styles: ["normal"], + subsets: ["latin"], + fallbacks: ["cursive", "sans-serif"], + }, + { + provider: fontProviders.google(), + name: "JetBrains Mono", + cssVariable: "--font-mono", + weights: ["400 700"], + styles: ["normal"], + subsets: ["latin"], + fallbacks: ["monospace"], + }, ], // Legacy RSS feed redirects. Listing stubs (/blog/page, /podcasts/page, // /authors, /guests, /sponsors) are implemented as dedicated SSR redirect diff --git a/apps/site/public/fonts/Virgil.woff2 b/apps/site/public/fonts/Virgil.woff2 new file mode 100644 index 000000000..cb222253f Binary files /dev/null and b/apps/site/public/fonts/Virgil.woff2 differ diff --git a/apps/site/public/images/aj-bipedal-2d.png b/apps/site/public/images/aj-bipedal-2d.png new file mode 100644 index 000000000..afdf44fd7 Binary files /dev/null and b/apps/site/public/images/aj-bipedal-2d.png differ diff --git a/apps/site/public/images/aj-bipedal-2d.webp b/apps/site/public/images/aj-bipedal-2d.webp new file mode 100644 index 000000000..f9935a128 Binary files /dev/null and b/apps/site/public/images/aj-bipedal-2d.webp differ diff --git a/apps/site/public/logos/amplify/amplify.png b/apps/site/public/logos/amplify/amplify.png new file mode 100644 index 000000000..46f7da409 Binary files /dev/null and b/apps/site/public/logos/amplify/amplify.png differ diff --git a/apps/site/public/logos/amplify/amplify.svg b/apps/site/public/logos/amplify/amplify.svg new file mode 100644 index 000000000..111b9e700 --- /dev/null +++ b/apps/site/public/logos/amplify/amplify.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Amplify-Console_64 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/site/public/logos/firebase/firebase-lockup-dark.svg b/apps/site/public/logos/firebase/firebase-lockup-dark.svg new file mode 100644 index 000000000..a83959219 --- /dev/null +++ b/apps/site/public/logos/firebase/firebase-lockup-dark.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/site/public/logos/firebase/firebase-lockup-light.svg b/apps/site/public/logos/firebase/firebase-lockup-light.svg new file mode 100644 index 000000000..d9bf539a4 --- /dev/null +++ b/apps/site/public/logos/firebase/firebase-lockup-light.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/site/public/logos/firebase/firebase-symbol.png b/apps/site/public/logos/firebase/firebase-symbol.png new file mode 100644 index 000000000..4cfb7da30 Binary files /dev/null and b/apps/site/public/logos/firebase/firebase-symbol.png differ diff --git a/apps/site/public/logos/sanity/Sanity-Full_logo--black_on_transparent.svg b/apps/site/public/logos/sanity/Sanity-Full_logo--black_on_transparent.svg new file mode 100644 index 000000000..35d0aedbf --- /dev/null +++ b/apps/site/public/logos/sanity/Sanity-Full_logo--black_on_transparent.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/apps/site/public/logos/sanity/Sanity-Full_logo--black_on_white.png b/apps/site/public/logos/sanity/Sanity-Full_logo--black_on_white.png new file mode 100644 index 000000000..19c363597 Binary files /dev/null and b/apps/site/public/logos/sanity/Sanity-Full_logo--black_on_white.png differ diff --git a/apps/site/public/logos/sanity/Sanity-Full_logo--white_on_black.png b/apps/site/public/logos/sanity/Sanity-Full_logo--white_on_black.png new file mode 100644 index 000000000..98e612bb9 Binary files /dev/null and b/apps/site/public/logos/sanity/Sanity-Full_logo--white_on_black.png differ diff --git a/apps/site/public/logos/sanity/Sanity-Full_logo--white_on_transparent.svg b/apps/site/public/logos/sanity/Sanity-Full_logo--white_on_transparent.svg new file mode 100644 index 000000000..46a025bd6 --- /dev/null +++ b/apps/site/public/logos/sanity/Sanity-Full_logo--white_on_transparent.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/site/public/logos/sanity/Sanity-Symbol--black_on_transparent.svg b/apps/site/public/logos/sanity/Sanity-Symbol--black_on_transparent.svg new file mode 100644 index 000000000..f4e0c7ac4 --- /dev/null +++ b/apps/site/public/logos/sanity/Sanity-Symbol--black_on_transparent.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/site/public/logos/sanity/Sanity-Symbol--black_on_white.png b/apps/site/public/logos/sanity/Sanity-Symbol--black_on_white.png new file mode 100644 index 000000000..ad30cd6a4 Binary files /dev/null and b/apps/site/public/logos/sanity/Sanity-Symbol--black_on_white.png differ diff --git a/apps/site/public/logos/sanity/Sanity-Symbol--white_on_black.png b/apps/site/public/logos/sanity/Sanity-Symbol--white_on_black.png new file mode 100644 index 000000000..7019916f8 Binary files /dev/null and b/apps/site/public/logos/sanity/Sanity-Symbol--white_on_black.png differ diff --git a/apps/site/public/logos/sanity/Sanity-Symbol--white_on_transparent.svg b/apps/site/public/logos/sanity/Sanity-Symbol--white_on_transparent.svg new file mode 100644 index 000000000..b5bccc8c8 --- /dev/null +++ b/apps/site/public/logos/sanity/Sanity-Symbol--white_on_transparent.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/site/src/components/AjAnimatedMascot.astro b/apps/site/src/components/AjAnimatedMascot.astro new file mode 100644 index 000000000..bea60c260 --- /dev/null +++ b/apps/site/src/components/AjAnimatedMascot.astro @@ -0,0 +1,948 @@ +--- +/** + * `AjAnimatedMascot.astro` + * + * Production-ready, multi-layered, articulated Interactive SVG + CSS Keyframes + + * Web Animations API (WAAPI) & Scroll/Cursor State Machine Component for AJ the Cat. + * + * Supports: + * - `variant="full-body" | "head"` + * - `angle="three-quarter-right" | "three-quarter-left"` (with counter-flipped readable text) + * - `state="idle-wave" | "podcast-groove" | "point-diagram" | "celebrate" | "search-curious" | "404-confused" | "peek-corner" | "bored-nap" | "chase-yarn" | "ship-it-laptop" | "coffee-sip" | "mind-blown" | "cool-shades" | "canonical-rest"` + * - `mouth="smile-open" | "grin" | "surprised-o" | "talking"` + * - Viewport-gated `requestAnimationFrame` cursor pupil tracking + * - Randomized natural double-blink state machine every 3.2s to 6.0s + * - Scroll-driven section glance & head tilt + * - Click / keyboard (`Enter` / `Space`) `celebrate` burst + * - `@media (prefers-reduced-motion: reduce)` safety overrides + */ +import AjFxLayer from "@/components/aj-rig/AjFxLayer.astro"; +import AjHeadBones from "@/components/aj-rig/AjHeadBones.astro"; +import AjHexBadgeDefs from "@/components/aj-rig/AjHexBadgeDefs.astro"; +import AjLowerBodyBones from "@/components/aj-rig/AjLowerBodyBones.astro"; +import { AJ_TRACED_PATHS as P } from "@/components/aj-rig/ajTracedPaths"; +import type { + AjAnimationState, + AjMascotVariant, + AjMouthViseme, + AjTurnaroundAngle, +} from "@/components/aj-rig/ajRigTypes"; + +export type { + AjAnimationState, + AjMascotVariant, + AjMouthViseme, + AjTurnaroundAngle, +}; + +export interface Props { + state?: AjAnimationState; + variant?: AjMascotVariant; + angle?: AjTurnaroundAngle; + mouth?: AjMouthViseme; + caption?: string; + cls?: string; + showYarnBall?: boolean; + showPivots?: boolean; + interactive?: boolean; + id?: string; +} + +const { + state = "idle-wave", + variant = "full-body", + angle = "three-quarter-right", + mouth, + caption, + cls = variant === "head" ? "w-20 h-20" : "w-44 h-auto", + showYarnBall = false, + showPivots = false, + interactive = true, + id = `aj-${Math.random().toString(36).slice(2, 9)}`, +} = Astro.props; + +const defaultMouthByState: Partial> = { + "podcast-groove": "grin", + "search-curious": "surprised-o", + "404-confused": "surprised-o", + "coffee-sip": "grin", + "mind-blown": "surprised-o", + "cool-shades": "grin", +}; + +const activeMouth: AjMouthViseme = + mouth ?? defaultMouthByState[state] ?? "smile-open"; + +const effectiveVariant: AjMascotVariant = + state === "peek-corner" ? "head" : variant; + +const viewBox = + state === "bored-nap" + ? "-55 75 660 595" + : state === "peek-corner" + ? "0 40 560 620" + : effectiveVariant === "head" + ? "10 12 540 676" + : "0 0 560 1030"; + +const isLeftAngle = angle === "three-quarter-left"; +--- + +
+ { + caption && ( +
+ {caption} +
+ ) + } + +
+ + + + { + state === "bored-nap" ? ( + /* Horizontal Cat Loaf Pose (state="bored-nap") */ + + + {/* Die-Cut Sticker Underlay for Loaf */} + + + + + + + + {/* Foreground Loaf Body & Tail */} + + + + + + + + {/* Scaled Head Resting on Front Paws */} + + + + + + + + + + + + + + + z + + + Z + + + z + + + + ) : ( + /* Standard Articulated Full-Body & Head-Only Bone Rig */ + <> + {effectiveVariant === "full-body" && ( + + )} + + + + {/* 1. Die-Cut White Sticker Underlay (#F8FAFC + 1px #94A3B8 Rim) */} + + + {/* 2-7. Lower Body Bones (Tail, Hind Legs, Left Arm, Torso, Right Arm) */} + + + {/* 8. Head, Headphones, Ears, Eyes, Nose, Whiskers & Switchable Mouth */} + + + {/* 9. Soft Lavender Collar & Pastel-Rainbow Hexagonal "AJ" Tag */} + + + + {/* 10 & 11. State-Specific Vector Props, Particles & Pivot Inspector Overlay */} + + + + ) + } + + + { + showYarnBall && ( + + ) + } +
+
+ + + + diff --git a/apps/site/src/components/AjMascot.astro b/apps/site/src/components/AjMascot.astro new file mode 100644 index 000000000..cb1a9b2b8 --- /dev/null +++ b/apps/site/src/components/AjMascot.astro @@ -0,0 +1,60 @@ +--- +/** + * AJ the CodingCat.dev Mascot (`AjMascot.astro`) + * + * Delegates directly to `AjAnimatedMascot.astro` so every existing caller + * across Courses, Podcasts, Blog Posts, and Diagrams automatically gets the + * 57-path articulated 2D vector bone rig. + */ +import AjAnimatedMascot, { + type AjAnimationState, + type AjMascotVariant, + type AjMouthViseme, + type AjTurnaroundAngle, +} from "@/components/AjAnimatedMascot.astro"; + +interface Props { + pose?: "yarn-chase" | "code-peek" | "lever-pull" | "headphones"; + state?: AjAnimationState; + variant?: AjMascotVariant; + angle?: AjTurnaroundAngle; + mouth?: AjMouthViseme; + caption?: string; + cls?: string; + showYarnBall?: boolean; + fullBody?: boolean; +} + +const { + pose = "yarn-chase", + state, + variant, + angle = "three-quarter-right", + mouth, + caption, + cls = "w-44 h-auto", + showYarnBall = true, + fullBody = true, +} = Astro.props; + +const poseToState: Record, AjAnimationState> = { + "yarn-chase": "idle-wave", + "code-peek": "point-diagram", + "lever-pull": "point-diagram", + headphones: "podcast-groove", +}; + +const resolvedState: AjAnimationState = state ?? poseToState[pose] ?? "idle-wave"; +const resolvedVariant: AjMascotVariant = + variant ?? (fullBody ? "full-body" : "head"); +--- + + diff --git a/apps/site/src/components/AjYarnTrail.astro b/apps/site/src/components/AjYarnTrail.astro new file mode 100644 index 000000000..b7b576ef8 --- /dev/null +++ b/apps/site/src/components/AjYarnTrail.astro @@ -0,0 +1,54 @@ +--- +/** + * Scroll-driven CodingCat Royal Purple (#7C3AED) & Candy Fuchsia (#C084FC / #D946EF) + * unwinding yarn string that connects Excalidraw explanation sections down the page. + * Matches Google Stitch screens 8d1319903d504a79ae56110486455e17 & b9e00f99c0d34e9884bf7766a014577b. + */ +interface Props { + variant?: "left-to-right" | "right-to-left" | "center-wave"; +} + +const { variant = "left-to-right" } = Astro.props; + +const pathD = + variant === "left-to-right" + ? "M 180 0 C 180 70, 820 50, 820 120" + : variant === "right-to-left" + ? "M 820 0 C 820 70, 180 50, 180 120" + : "M 500 0 C 360 40, 640 80, 500 120"; +--- + + diff --git a/apps/site/src/components/AnimatedHero.astro b/apps/site/src/components/AnimatedHero.astro index 1e2d79fd3..8c18ff6c6 100644 --- a/apps/site/src/components/AnimatedHero.astro +++ b/apps/site/src/components/AnimatedHero.astro @@ -1,48 +1,307 @@ --- -import AjHeadphones from "@/components/icons/AjHeadphones.astro"; -import AjPrimaryAlt from "@/components/icons/AjPrimaryAlt.astro"; -import { HERO_ICONS } from "@/lib/hero-icons"; - /** - * Ported from the Next `animated-hero.tsx`. Its only state was `isHovered`, - * driving a transform on the two paw marks — expressed here with - * `group-hover:`, so the hero ships no JavaScript at all. + * CodingCat.dev 2026 - Dual-Theme Video-First Chalkboard Hero (`AnimatedHero.astro`). + * + * Implements Google Stitch reference screens: + * - Light Mode (Chalkboard Paper): 8d1319903d504a79ae56110486455e17 + * - Dark Mode (Obsidian Chalkboard): b9e00f99c0d34e9884bf7766a014577b + * + * Uses canonical terminology: Courses, Podcasts, Blog, and Diagrams. */ +import AjAnimatedMascot from "@/components/AjAnimatedMascot.astro"; --- -
-