[
  {
    "slug": "api-routes",
    "title": "API routes",
    "description": "Web-standard endpoints, colocated with your pages, with no configuration."
  },
  {
    "slug": "authorization",
    "title": "Authorization",
    "description": "Protecting pages, server actions and API routes."
  },
  {
    "slug": "backend-answered-pages",
    "title": "Backend-Answered Pages",
    "description": "BAP — the model for an rsc-kit app with a backend behind it, and how to build for it."
  },
  {
    "slug": "bap-vs-inertia",
    "title": "BAP vs Inertia",
    "description": "Two ways to put React in front of Laravel, and when each is the right one."
  },
  {
    "slug": "bun",
    "title": "Running on Bun",
    "description": "What is different when the runtime is Bun — and what only looks like it is."
  },
  {
    "slug": "caching",
    "title": "Asking once per request",
    "description": "cache() — one lookup, however many places need it."
  },
  {
    "slug": "coming-from-inertia",
    "title": "Coming from Inertia",
    "description": "A Laravel + Inertia React app, ported page by page — what stays in Laravel, what the pages become, and what goes."
  },
  {
    "slug": "coming-from-next",
    "title": "Coming from Next.js",
    "description": "What carries over unchanged, what to rename, and what is different on purpose."
  },
  {
    "slug": "connection",
    "title": "Rendering per request",
    "description": "Marking work that belongs to the visitor, not to the build."
  },
  {
    "slug": "deployment",
    "title": "Deploying",
    "description": "What to ship, and the two settings that fail quietly."
  },
  {
    "slug": "domains",
    "title": "Domains and subdomains",
    "description": "A host as a route segment — admin.example.com reaches app/admin, a tenant's host binds [domain] — with nothing to rewrite."
  },
  {
    "slug": "edge-caching",
    "title": "Serving shells from a CDN",
    "description": "Putting build-time shells on the edge, and what rsc-kit does not do."
  },
  {
    "slug": "emails",
    "title": "Emails and other HTML",
    "description": "Rendering React to HTML on the server — an email, a PDF, a feed — from a server action or a route, with \"use ssr\"."
  },
  {
    "slug": "errors",
    "title": "Errors and 404s",
    "description": "What a visitor sees when a page throws, or asks for a url nothing answers."
  },
  {
    "slug": "feature-flags",
    "title": "Feature flags",
    "description": "Vercel's Flags SDK runs unchanged — flags/next, without Next."
  },
  {
    "slug": "file-uploads",
    "title": "File uploads",
    "description": "Sending files through a server action without encoding them."
  },
  {
    "slug": "fonts",
    "title": "Fonts",
    "description": "Self-hosted fonts from npm, and what next/font was doing for you."
  },
  {
    "slug": "forms",
    "title": "Forms",
    "description": "Progressive forms, pending state and validation errors."
  },
  {
    "slug": "getting-started",
    "title": "Getting started",
    "description": "Serve React Server Components from any JavaScript backend."
  },
  {
    "slug": "go",
    "title": "Go",
    "description": "A Go process behind the renderer — functions, guards and actions in Go."
  },
  {
    "slug": "images",
    "title": "Images",
    "description": "Responsive images with no optimizer to run — unpic for a CDN, imagetools for files in the repo."
  },
  {
    "slug": "installation",
    "title": "Installation",
    "description": "From an empty directory to a streaming RSC app."
  },
  {
    "slug": "instrumentation",
    "title": "Startup",
    "description": "instrumentation.ts runs once, before anything else."
  },
  {
    "slug": "introduction",
    "title": "Introduction",
    "description": "React Server Components as a Vite plugin, deployed wherever you like."
  },
  {
    "slug": "laravel",
    "title": "Laravel",
    "description": "React Server Components in front, a Laravel application behind them."
  },
  {
    "slug": "live-data",
    "title": "Live data",
    "description": "Keep what a page shows current as the data changes - refreshOn, events, polling."
  },
  {
    "slug": "mcp",
    "title": "Working with an AI agent",
    "description": "An MCP server that answers from your actual build, and the AGENTS.md written into every project."
  },
  {
    "slug": "metadata",
    "title": "Page metadata",
    "description": "Titles, descriptions and Open Graph tags, exported from the page."
  },
  {
    "slug": "navigation",
    "title": "Navigation",
    "description": "What happens when someone clicks a link, and why state survives it."
  },
  {
    "slug": "no-javascript",
    "title": "A page with no JavaScript",
    "description": "The default is none. A client component is how a page asks for it."
  },
  {
    "slug": "offline",
    "title": "Offline",
    "description": "Knowing when the server cannot be reached, and carrying on without it."
  },
  {
    "slug": "openapi",
    "title": "OpenAPI",
    "description": "A document derived from your route.ts files, and Scalar's page over it."
  },
  {
    "slug": "ppr",
    "title": "Partial prerendering",
    "description": "Storing what every visitor sees the same, and rendering the rest per request."
  },
  {
    "slug": "pwa",
    "title": "Progressive web apps",
    "description": "Making the app installable, and adding push notifications and background sync."
  },
  {
    "slug": "queries",
    "title": "Queries",
    "description": "Reading from the server over GET, and letting TanStack Query or SWR own everything above it."
  },
  {
    "slug": "quick-start",
    "title": "Quick start",
    "description": "A running app in one command, or added to a project you already have."
  },
  {
    "slug": "react-compiler",
    "title": "React Compiler",
    "description": "Enabling the compiler in the build."
  },
  {
    "slug": "redirects",
    "title": "Redirects",
    "description": "Leaving a page from inside the render, and what that costs."
  },
  {
    "slug": "response-headers",
    "title": "Headers and cookies",
    "description": "Setting response headers and cookies during a render."
  },
  {
    "slug": "route-interception",
    "title": "Route interception",
    "description": "Opening a route as a modal over the page you were on."
  },
  {
    "slug": "routing",
    "title": "Routing",
    "description": "File-based routes, layouts, loading states and parallel slots."
  },
  {
    "slug": "sections",
    "title": "Sections",
    "description": "Refreshing one region of a page without re-rendering the rest."
  },
  {
    "slug": "seo-files",
    "title": "robots, sitemap and llms.txt",
    "description": "The files a site describes itself with, from a file beside the root layout — written the way Next writes them, stored at build when they can be."
  },
  {
    "slug": "server-actions",
    "title": "Server actions",
    "description": "Calling the server from a client component, as an ordinary function."
  },
  {
    "slug": "static-generation",
    "title": "Static generation",
    "description": "Rendering pages ahead of time, and exporting a site of files."
  },
  {
    "slug": "testing",
    "title": "Testing",
    "description": "Three tiers, and the one thing that still needs a browser."
  },
  {
    "slug": "third-party-scripts",
    "title": "Third-party scripts",
    "description": "Analytics, tag managers and widgets — and why there is no Script component."
  },
  {
    "slug": "typed-routes",
    "title": "Typed routes",
    "description": "Links that fail the typecheck instead of the browser."
  },
  {
    "slug": "url-validation",
    "title": "Typed URLs",
    "description": "Checking and typing params, query strings and request bodies with a schema you already write."
  },
  {
    "slug": "validation",
    "title": "Validation",
    "description": "Surfacing server-side validation errors in a form."
  },
  {
    "slug": "view-transitions",
    "title": "View transitions",
    "description": "Navigations are an instant swap; a shared element is the transition worth having, and the page fade is the one to think twice about."
  },
  {
    "slug": "where-it-runs",
    "title": "Where it runs",
    "description": "A host is a Nitro preset, not a server you write."
  },
  {
    "slug": "your-own-backend",
    "title": "Your own backend",
    "description": "The one endpoint a backend in any language answers."
  }
]
