{
  "title": "Advanced SolidJS Techniques with Dev Agrawal",
  "slug": "advanced-solidjs-techniques-dev-agrawal",
  "collection": "videos",
  "contentType": "Video",
  "description": "Dev Agrawal discusses Solid 2.0 features including non-nullable async, mutable derivations, lazy memos, self-healing error boundaries, and AI tooling.",
  "summary": "Dev Agrawal discusses Solid 2.0 features including non-nullable async, mutable derivations, lazy memos, self-healing error boundaries, and AI tooling.",
  "author": {
    "name": "Anthony Campolo"
  },
  "source": {
    "channel": "Anthony Campolo",
    "channelUrl": "https://www.youtube.com/channel/UCpdzti0GURPfMjKzYK5FVSA",
    "originalUrl": "https://www.youtube.com/watch?v=jv4KZ04EOc0"
  },
  "publishedAt": "2025-09-19T00:00:00.000Z",
  "updatedAt": null,
  "freshness": {
    "label": "Published",
    "value": "2025-09-19T00:00:00.000Z"
  },
  "urls": {
    "html": "https://ajcwebdev.com/videos/advanced-solidjs-techniques-dev-agrawal/",
    "markdown": "https://ajcwebdev.com/videos/advanced-solidjs-techniques-dev-agrawal/index.md",
    "json": "https://ajcwebdev.com/videos/advanced-solidjs-techniques-dev-agrawal/index.json"
  },
  "headings": [
    {
      "depth": 2,
      "id": "episode-description",
      "text": "Episode Description"
    },
    {
      "depth": 2,
      "id": "episode-summary",
      "text": "Episode Summary"
    },
    {
      "depth": 2,
      "id": "chapters",
      "text": "Chapters"
    },
    {
      "depth": 3,
      "id": "00-00-00-welcome-back-and-migration-plans",
      "text": "00:00:00 - Welcome Back and Migration Plans"
    },
    {
      "depth": 3,
      "id": "00-05-12-solid-2-0-roadmap-and-release-timeline",
      "text": "00:05:12 - Solid 2.0 Roadmap and Release Timeline"
    },
    {
      "depth": 3,
      "id": "00-09-13-non-nullable-async-and-suspense-decoupling",
      "text": "00:09:13 - Non-Nullable Async and Suspense Decoupling"
    },
    {
      "depth": 3,
      "id": "00-16-30-ispending-helper-and-pending-states",
      "text": "00:16:30 - isPending Helper and Pending States"
    },
    {
      "depth": 3,
      "id": "00-24-48-mutable-derivations-and-flush-boundaries",
      "text": "00:24:48 - Mutable Derivations and Flush Boundaries"
    },
    {
      "depth": 3,
      "id": "00-33-50-immutable-diffable-stores",
      "text": "00:33:50 - Immutable Diffable Stores"
    },
    {
      "depth": 3,
      "id": "00-40-40-lazy-memos-and-automatic-batching",
      "text": "00:40:40 - Lazy Memos and Automatic Batching"
    },
    {
      "depth": 3,
      "id": "00-44-18-self-healing-error-boundaries",
      "text": "00:44:18 - Self-Healing Error Boundaries"
    },
    {
      "depth": 3,
      "id": "00-50-54-transitions-and-migration-strategy",
      "text": "00:50:54 - Transitions and Migration Strategy"
    },
    {
      "depth": 3,
      "id": "00-57-35-autoshow-code-tour-and-form-state",
      "text": "00:57:35 - AutoShow Code Tour and Form State"
    },
    {
      "depth": 3,
      "id": "01-06-11-stores-produce-and-named-mutations",
      "text": "01:06:11 - Stores, Produce, and Named Mutations"
    },
    {
      "depth": 3,
      "id": "01-13-33-validation-form-libraries-and-solid-start-patterns",
      "text": "01:13:33 - Validation, Form Libraries, and Solid Start Patterns"
    },
    {
      "depth": 3,
      "id": "01-21-51-essential-vs-accidental-complexity",
      "text": "01:21:51 - Essential vs Accidental Complexity"
    },
    {
      "depth": 3,
      "id": "01-29-00-route-loaders-code-splitting-and-nitro",
      "text": "01:29:00 - Route Loaders, Code Splitting, and Nitro"
    },
    {
      "depth": 3,
      "id": "01-44-31-database-options-and-sync-engines",
      "text": "01:44:31 - Database Options and Sync Engines"
    },
    {
      "depth": 3,
      "id": "01-54-32-webcodegen-scorer-and-documentation-for-ai",
      "text": "01:54:32 - WebCodeGen Scorer and Documentation for AI"
    },
    {
      "depth": 3,
      "id": "02-01-32-anthony-s-custom-instructions-workflow",
      "text": "02:01:32 - Anthony's Custom Instructions Workflow"
    },
    {
      "depth": 3,
      "id": "02-11-19-opencode-sub-agents-and-future-workflows",
      "text": "02:11:19 - OpenCode, Sub-Agents, and Future Workflows"
    },
    {
      "depth": 3,
      "id": "02-31-23-voice-models-notebooklm-and-real-time-features",
      "text": "02:31:23 - Voice Models, NotebookLM, and Real-Time Features"
    },
    {
      "depth": 2,
      "id": "transcript",
      "text": "Transcript"
    }
  ],
  "tags": [],
  "discovery": {
    "apiIndex": "https://ajcwebdev.com/api/index.json",
    "llmsTxt": "https://ajcwebdev.com/llms.txt",
    "llmsFullTxt": "https://ajcwebdev.com/llms-full.txt",
    "sitemapMd": "https://ajcwebdev.com/sitemap.md",
    "sitemapXml": "https://ajcwebdev.com/sitemap.xml"
  },
  "nextActions": [
    {
      "action": "open_html",
      "url": "https://ajcwebdev.com/videos/advanced-solidjs-techniques-dev-agrawal/",
      "method": "GET",
      "accept": "text/html"
    },
    {
      "action": "get_markdown_twin",
      "url": "https://ajcwebdev.com/videos/advanced-solidjs-techniques-dev-agrawal/index.md",
      "method": "GET",
      "accept": "text/markdown"
    },
    {
      "action": "get_json_twin",
      "url": "https://ajcwebdev.com/videos/advanced-solidjs-techniques-dev-agrawal/index.json",
      "method": "GET",
      "accept": "application/json"
    }
  ]
}