# Vercel Academy Sitemap

> Hierarchical index of all courses and lessons with metadata.

- [Launch a Subscription Store with Vercel and Stripe](/academy/subscription-store) | Type: course | Lessons: 17
  - **Setup & Authentication**
    - [Deploy Your Starter](/academy/subscription-store/deploy-your-starter) | Type: lesson | Section: Setup & Authentication
    - [Supabase Project Setup](/academy/subscription-store/supabase-project-setup) | Type: lesson | Section: Setup & Authentication
    - [Supabase Client Utilities](/academy/subscription-store/supabase-client-utilities) | Type: lesson | Section: Setup & Authentication
    - [Sign Up and Sign In Pages](/academy/subscription-store/sign-up-and-sign-in-pages) | Type: lesson | Section: Setup & Authentication
    - [Proxy and Protected Routes](/academy/subscription-store/proxy-and-protected-routes) | Type: lesson | Section: Setup & Authentication
  - **Stripe Integration**
    - [Stripe SDK Setup](/academy/subscription-store/stripe-sdk-setup) | Type: lesson | Section: Stripe Integration
    - [Pricing Page with Plans](/academy/subscription-store/pricing-page-with-plans) | Type: lesson | Section: Stripe Integration
    - [Stripe Checkout Flow](/academy/subscription-store/stripe-checkout-flow) | Type: lesson | Section: Stripe Integration
    - [Subscription Management](/academy/subscription-store/subscription-management-page) | Type: lesson | Section: Stripe Integration
    - [Subscription Actions](/academy/subscription-store/subscription-actions) | Type: lesson | Section: Stripe Integration
  - **Access Control**
    - [Understanding Access Control](/academy/subscription-store/understanding-access-control) | Type: lesson | Section: Access Control
    - [Server-Side Checks](/academy/subscription-store/server-side-subscription-checks) | Type: lesson | Section: Access Control
    - [Client-Side Checks](/academy/subscription-store/client-side-subscription-checks) | Type: lesson | Section: Access Control
    - [Protected API Routes](/academy/subscription-store/protected-api-routes) | Type: lesson | Section: Access Control
  - **Production Ready**
    - [Error Handling & Loading](/academy/subscription-store/error-handling-and-loading-states) | Type: lesson | Section: Production Ready
    - [Header and Navigation](/academy/subscription-store/header-and-navigation) | Type: lesson | Section: Production Ready
    - [Deploy to Production](/academy/subscription-store/deploy-to-production) | Type: lesson | Section: Production Ready
- [Building Agents with eve](/academy/building-agents-with-eve) | Type: course | Lessons: 14
  - **Your First Agent**
    - [Scaffold the Dispatcher](/academy/building-agents-with-eve/scaffold-the-dispatcher) | Type: lesson | Section: Your First Agent
    - [Your First Tool](/academy/building-agents-with-eve/your-first-tool) | Type: lesson | Section: Your First Agent
    - [Drive It Over HTTP](/academy/building-agents-with-eve/drive-it-over-http) | Type: lesson | Section: Your First Agent
  - **Give It a Memory and a Brain**
    - [Find Real Openings](/academy/building-agents-with-eve/find-real-openings) | Type: lesson | Section: Give It a Memory and a Brain
    - [Remember the Bikes](/academy/building-agents-with-eve/remember-the-bikes) | Type: lesson | Section: Give It a Memory and a Brain
    - [A Playbook Per Tier](/academy/building-agents-with-eve/a-playbook-per-tier) | Type: lesson | Section: Give It a Memory and a Brain
  - **Put a Human in the Loop**
    - [Book a Repair](/academy/building-agents-with-eve/book-a-repair) | Type: lesson | Section: Put a Human in the Loop
    - [Pause for a Sign-off](/academy/building-agents-with-eve/pause-for-a-signoff) | Type: lesson | Section: Put a Human in the Loop
  - **Meet Your Users Where They Are**
    - [A Web Dashboard](/academy/building-agents-with-eve/a-web-dashboard) | Type: lesson | Section: Meet Your Users Where They Are
    - [Add Slack](/academy/building-agents-with-eve/add-slack) | Type: lesson | Section: Meet Your Users Where They Are
    - [Stamp Identity at the Door](/academy/building-agents-with-eve/stamp-identity) | Type: lesson | Section: Meet Your Users Where They Are
  - **Ship It**
    - [Lock the Doors](/academy/building-agents-with-eve/lock-the-doors) | Type: lesson | Section: Ship It
    - [Deploy to Vercel](/academy/building-agents-with-eve/deploy-agent-to-vercel) | Type: lesson | Section: Ship It
    - [Where to Go Next](/academy/building-agents-with-eve/where-to-go-next) | Type: lesson | Section: Ship It
- [Workflow Foundations](/academy/workflow-foundations) | Type: course | Lessons: 13
  - **Your First Workflow**
    - [Set up the tracker](/academy/workflow-foundations/set-up-the-pizza-tracker) | Type: lesson | Section: Your First Workflow
    - [Send a confirmation](/academy/workflow-foundations/send-a-confirmation-email) | Type: lesson | Section: Your First Workflow
    - [Wrap in a workflow](/academy/workflow-foundations/wrap-it-in-a-workflow) | Type: lesson | Section: Your First Workflow
    - [Deploy to Vercel](/academy/workflow-foundations/deploy-to-vercel) | Type: lesson | Section: Your First Workflow
  - **Multi-Step Orders**
    - [Add the kitchen step](/academy/workflow-foundations/add-the-kitchen-step) | Type: lesson | Section: Multi-Step Orders
    - [Pause with sleep()](/academy/workflow-foundations/pause-between-steps-with-sleep) | Type: lesson | Section: Multi-Step Orders
    - [Complete the path](/academy/workflow-foundations/complete-the-happy-path) | Type: lesson | Section: Multi-Step Orders
  - **Waiting for the Real World**
    - [Wait on a hook](/academy/workflow-foundations/pause-until-the-kitchen-pings-us) | Type: lesson | Section: Waiting for the Real World
    - [Hook the driver](/academy/workflow-foundations/hook-the-driver-into-the-flow) | Type: lesson | Section: Waiting for the Real World
    - [When nobody pings](/academy/workflow-foundations/what-if-the-kitchen-never-responds) | Type: lesson | Section: Waiting for the Real World
  - **When Things Go Wrong**
    - [Retries for free](/academy/workflow-foundations/the-kitchen-is-flaky) | Type: lesson | Section: When Things Go Wrong
    - [Final failures](/academy/workflow-foundations/some-failures-are-final) | Type: lesson | Section: When Things Go Wrong
    - [Observe everything](/academy/workflow-foundations/observe-everything) | Type: lesson | Section: When Things Go Wrong
- [Creating an AI Summary App with Next.js](/academy/ai-summary-app-with-nextjs) | Type: course | Lessons: 14
  - **Foundations**
    - [Modern Next.js Setup](/academy/ai-summary-app-with-nextjs/modern-nextjs-setup) | Type: lesson | Section: Foundations
    - [Type-Safe Data Layer](/academy/ai-summary-app-with-nextjs/type-safe-data-layer) | Type: lesson | Section: Foundations
    - [Review Display Components](/academy/ai-summary-app-with-nextjs/review-display-components) | Type: lesson | Section: Foundations
    - [Dynamic Routes & Static Generation](/academy/ai-summary-app-with-nextjs/dynamic-routes-static-generation) | Type: lesson | Section: Foundations
    - [Deploy the App](/academy/ai-summary-app-with-nextjs/deploy-the-app) | Type: lesson | Section: Foundations
  - **AI SDK Integration**
    - [AI Gateway Setup](/academy/ai-summary-app-with-nextjs/ai-gateway-setup) | Type: lesson | Section: AI SDK Integration
    - [First AI Summary](/academy/ai-summary-app-with-nextjs/first-ai-summary) | Type: lesson | Section: AI SDK Integration
    - [Prompt Engineering](/academy/ai-summary-app-with-nextjs/prompt-engineering) | Type: lesson | Section: AI SDK Integration
    - [Streaming Summaries](/academy/ai-summary-app-with-nextjs/streaming-summaries) | Type: lesson | Section: AI SDK Integration
    - [Structured Output](/academy/ai-summary-app-with-nextjs/structured-output) | Type: lesson | Section: AI SDK Integration
  - **Production Readiness**
    - [Smart Caching](/academy/ai-summary-app-with-nextjs/smart-caching) | Type: lesson | Section: Production Readiness
    - [When AI Goes Wrong](/academy/ai-summary-app-with-nextjs/when-ai-goes-wrong) | Type: lesson | Section: Production Readiness
    - [Observability and Monitoring](/academy/ai-summary-app-with-nextjs/observability-monitoring) | Type: lesson | Section: Production Readiness
    - [Course Complete](/academy/ai-summary-app-with-nextjs/complete) | Type: lesson | Section: Production Readiness
- [Python on Vercel](/academy/python-on-vercel) | Type: course | Lessons: 6
  - **Setup**
    - [Install the Vercel CLI](/academy/python-on-vercel/install-vercel-cli) | Type: lesson | Section: Setup
    - [Tour the FastAPI Starter](/academy/python-on-vercel/explore-fastapi-starter) | Type: lesson | Section: Setup
    - [Tour the Next.js Starter](/academy/python-on-vercel/explore-nextjs-starter) | Type: lesson | Section: Setup
  - **Connect the Apps**
    - [Run with vercel dev](/academy/python-on-vercel/run-with-vercel-dev) | Type: lesson | Section: Connect the Apps
    - [Wire Next.js to FastAPI](/academy/python-on-vercel/wire-nextjs-to-fastapi) | Type: lesson | Section: Connect the Apps
  - **Deploy to Vercel**
    - [Deploy to Production](/academy/python-on-vercel/deploy-to-prod) | Type: lesson | Section: Deploy to Vercel
- [Creating a Software Factory](/academy/creating-a-software-factory) | Type: course | Lessons: 14
  - **The Trust Bottleneck**
    - [Would You Merge This?](/academy/creating-a-software-factory/would-you-merge-this) | Type: lesson | Section: The Trust Bottleneck
    - [Carry the Receipts](/academy/creating-a-software-factory/carry-the-receipts) | Type: lesson | Section: The Trust Bottleneck
  - **Decide What May Proceed**
    - [Normalize the Request](/academy/creating-a-software-factory/normalize-the-request) | Type: lesson | Section: Decide What May Proceed
    - [Classify, Then Authorize](/academy/creating-a-software-factory/classify-then-authorize) | Type: lesson | Section: Decide What May Proceed
    - [Test the Stopping Rules](/academy/creating-a-software-factory/test-the-stopping-rules) | Type: lesson | Section: Decide What May Proceed
  - **Prove the Request**
    - [Reproduce the Claim](/academy/creating-a-software-factory/reproduce-the-claim) | Type: lesson | Section: Prove the Request
    - [Write the Supported Spec](/academy/creating-a-software-factory/write-the-supported-spec) | Type: lesson | Section: Prove the Request
    - [Challenge the Premise](/academy/creating-a-software-factory/challenge-the-premise) | Type: lesson | Section: Prove the Request
  - **Build Without Blind Trust**
    - [Build Within Bounds](/academy/creating-a-software-factory/build-within-bounds) | Type: lesson | Section: Build Without Blind Trust
    - [Package the Proof](/academy/creating-a-software-factory/package-the-proof) | Type: lesson | Section: Build Without Blind Trust
    - [Verify in Fresh Context](/academy/creating-a-software-factory/verify-in-fresh-context) | Type: lesson | Section: Build Without Blind Trust
  - **Operate Selective Autonomy**
    - [Gate by Consequence](/academy/creating-a-software-factory/gate-by-consequence) | Type: lesson | Section: Operate Selective Autonomy
    - [Publish a Draft](/academy/creating-a-software-factory/publish-a-draft) | Type: lesson | Section: Operate Selective Autonomy
    - [Learn From Failure](/academy/creating-a-software-factory/learn-from-failure) | Type: lesson | Section: Operate Selective Autonomy
- [Using AI Gateway in Production](/academy/ai-gateway) | Type: course | Lessons: 18
  - **Reliability and Migration**
    - [Why AI Gateway?](/academy/ai-gateway/why-ai-gateway) | Type: lesson | Section: Reliability and Migration
    - [Works with Your Stack](/academy/ai-gateway/existing-ai-stack) | Type: lesson | Section: Reliability and Migration
    - [Switch Models Fast](/academy/ai-gateway/switch-models) | Type: lesson | Section: Reliability and Migration
    - [Survive an Outage](/academy/ai-gateway/provider-outage) | Type: lesson | Section: Reliability and Migration
    - [Migrate from OpenAI SDK](/academy/ai-gateway/migrate-from-openai-sdk) | Type: lesson | Section: Reliability and Migration
    - [Fail Over on Latency](/academy/ai-gateway/latency-failover) | Type: lesson | Section: Reliability and Migration
    - [Pin a Provider](/academy/ai-gateway/pin-a-provider) | Type: lesson | Section: Reliability and Migration
  - **Control Spend**
    - [How Pricing Works](/academy/ai-gateway/ai-gateway-pricing) | Type: lesson | Section: Control Spend
    - [Route to Cheapest](/academy/ai-gateway/cheapest-provider-routing) | Type: lesson | Section: Control Spend
    - [Cut Costs with Caching](/academy/ai-gateway/prompt-caching) | Type: lesson | Section: Control Spend
    - [Use Your AI Credits](/academy/ai-gateway/use-ai-credits) | Type: lesson | Section: Control Spend
    - [Set a Budget](/academy/ai-gateway/set-a-budget) | Type: lesson | Section: Control Spend
    - [Bring Your Own Keys](/academy/ai-gateway/bring-your-own-keys) | Type: lesson | Section: Control Spend
  - **Stay Aware**
    - [See Where Money Goes](/academy/ai-gateway/see-your-spend) | Type: lesson | Section: Stay Aware
    - [Keep Prompts Private](/academy/ai-gateway/keep-prompts-private) | Type: lesson | Section: Stay Aware
    - [Claude Code via Gateway](/academy/ai-gateway/claude-code-with-gateway) | Type: lesson | Section: Stay Aware
    - [OpenCode via Gateway](/academy/ai-gateway/opencode-with-gateway) | Type: lesson | Section: Stay Aware
    - [Codex via Gateway](/academy/ai-gateway/codex-with-gateway) | Type: lesson | Section: Stay Aware
- [Builders Guide to the AI SDK](/academy/ai-sdk) | Type: course | Lessons: 16
  - **Fundamentals**
    - [Introduction to LLMs](/academy/ai-sdk/introduction-to-llms) | Type: lesson | Section: Fundamentals
    - [Prompting Fundamentals](/academy/ai-sdk/prompting-fundamentals) | Type: lesson | Section: Fundamentals
    - [AI SDK Dev Setup](/academy/ai-sdk/ai-sdk-dev-setup) | Type: lesson | Section: Fundamentals
    - [Data Extraction](/academy/ai-sdk/data-extraction) | Type: lesson | Section: Fundamentals
    - [Model Types and Performance](/academy/ai-sdk/model-types-and-performance) | Type: lesson | Section: Fundamentals
  - **Invisible AI**
    - [Introduction to Invisible AI](/academy/ai-sdk/introduction-to-invisible-ai) | Type: lesson | Section: Invisible AI
    - [Text Classification](/academy/ai-sdk/text-classification) | Type: lesson | Section: Invisible AI
    - [Automatic Summarization](/academy/ai-sdk/automatic-summarization) | Type: lesson | Section: Invisible AI
    - [Structured Data Extraction](/academy/ai-sdk/structured-data-extraction) | Type: lesson | Section: Invisible AI
    - [UI with v0](/academy/ai-sdk/ui-with-v0) | Type: lesson | Section: Invisible AI
  - **Conversational AI**
    - [Basic Chatbot](/academy/ai-sdk/basic-chatbot) | Type: lesson | Section: Conversational AI
    - [AI Elements](/academy/ai-sdk/ai-elements) | Type: lesson | Section: Conversational AI
    - [System Prompts](/academy/ai-sdk/system-prompts) | Type: lesson | Section: Conversational AI
    - [Tool Use](/academy/ai-sdk/tool-use) | Type: lesson | Section: Conversational AI
    - [Multi-Step & Generative UI](/academy/ai-sdk/multi-step-and-generative-ui) | Type: lesson | Section: Conversational AI
    - [Conclusion](/academy/ai-sdk/conclusion) | Type: lesson | Section: Conversational AI
- [Build Visual Workflow Plugins on Vercel](/academy/visual-workflow-builder-on-vercel) | Type: course | Lessons: 6
  - [Build Your First Plugin](/academy/visual-workflow-builder-on-vercel/first-plugin) | Type: lesson
  - [Build an Email Plugin](/academy/visual-workflow-builder-on-vercel/resend-plugin) | Type: lesson
  - [Build Your Own Plugin](/academy/visual-workflow-builder-on-vercel/build-your-plugin) | Type: lesson
  - [Webhook Workflow](/academy/visual-workflow-builder-on-vercel/webhook-workflow) | Type: lesson
  - [Break It, Fix It](/academy/visual-workflow-builder-on-vercel/error-handling) | Type: lesson
  - [Hello Workflow](/academy/visual-workflow-builder-on-vercel/hello-workflow) | Type: lesson
- [Vercel Sandbox](/academy/vercel-sandbox) | Type: course | Lessons: 20
  - **Sandbox Foundations**
    - [Your First Sandbox](/academy/vercel-sandbox/your-first-sandbox) | Type: lesson | Section: Sandbox Foundations
    - [Clone a Repo](/academy/vercel-sandbox/clone-a-repo) | Type: lesson | Section: Sandbox Foundations
    - [Read Files](/academy/vercel-sandbox/read-files) | Type: lesson | Section: Sandbox Foundations
    - [Wrap the Lifecycle](/academy/vercel-sandbox/wrap-the-lifecycle) | Type: lesson | Section: Sandbox Foundations
  - **Building the CLI**
    - [Scaffold the CLI](/academy/vercel-sandbox/scaffold-the-cli) | Type: lesson | Section: Building the CLI
    - [Validate GitHub URLs](/academy/vercel-sandbox/validate-github-urls) | Type: lesson | Section: Building the CLI
    - [Wire the Sandbox Workflow](/academy/vercel-sandbox/wire-the-sandbox-workflow) | Type: lesson | Section: Building the CLI
    - [Predictable Exit Codes](/academy/vercel-sandbox/predictable-exit-codes) | Type: lesson | Section: Building the CLI
  - **AI-Powered Analysis**
    - [The Naive Prompt](/academy/vercel-sandbox/the-naive-prompt) | Type: lesson | Section: AI-Powered Analysis
    - [Design the Review Schema](/academy/vercel-sandbox/design-the-review-schema) | Type: lesson | Section: AI-Powered Analysis
    - [Generate Structured Reviews](/academy/vercel-sandbox/generate-structured-reviews) | Type: lesson | Section: AI-Powered Analysis
    - [Connect Analysis to the CLI](/academy/vercel-sandbox/connect-analysis-to-the-cli) | Type: lesson | Section: AI-Powered Analysis
  - **Test Execution**
    - [Run Tests Inside the Sandbox](/academy/vercel-sandbox/run-tests-inside-the-sandbox) | Type: lesson | Section: Test Execution
    - [Parse Test Failures](/academy/vercel-sandbox/parse-test-failures) | Type: lesson | Section: Test Execution
    - [Handle Package Manager Variants](/academy/vercel-sandbox/handle-package-manager-variants) | Type: lesson | Section: Test Execution
    - [Merge AI and Test Findings](/academy/vercel-sandbox/merge-ai-and-test-findings) | Type: lesson | Section: Test Execution
  - **Production Ready**
    - [Benchmark the Pipeline](/academy/vercel-sandbox/benchmark-the-pipeline) | Type: lesson | Section: Production Ready
    - [Sandbox Snapshots for Speed](/academy/vercel-sandbox/sandbox-snapshots-for-speed) | Type: lesson | Section: Production Ready
    - [Resilient Error Handling](/academy/vercel-sandbox/resilient-error-handling) | Type: lesson | Section: Production Ready
    - [Formatted Reports](/academy/vercel-sandbox/formatted-reports) | Type: lesson | Section: Production Ready
- [Agent-Friendly APIs](/academy/agent-friendly-apis) | Type: course | Lessons: 12
  - **Build the API**
    - [Project Setup](/academy/agent-friendly-apis/setup-project) | Type: lesson | Section: Build the API
    - [Feedback Endpoint](/academy/agent-friendly-apis/feedback-endpoint) | Type: lesson | Section: Build the API
    - [Filtering and Details](/academy/agent-friendly-apis/filtering-and-details) | Type: lesson | Section: Build the API
    - [Summary Endpoint](/academy/agent-friendly-apis/summary-endpoint) | Type: lesson | Section: Build the API
  - **Make It Agent-Friendly**
    - [Agent-Friendly Docs](/academy/agent-friendly-apis/agent-friendly-docs) | Type: lesson | Section: Make It Agent-Friendly
    - [Add llms.txt](/academy/agent-friendly-apis/add-llms-txt) | Type: lesson | Section: Make It Agent-Friendly
    - [Deploy to Vercel](/academy/agent-friendly-apis/deploy-your-docs) | Type: lesson | Section: Make It Agent-Friendly
    - [Explore Real Skills](/academy/agent-friendly-apis/explore-real-skills) | Type: lesson | Section: Make It Agent-Friendly
  - **Build the Skill**
    - [Anatomy of a Skill](/academy/agent-friendly-apis/anatomy-of-a-skill) | Type: lesson | Section: Build the Skill
    - [Build the Generator](/academy/agent-friendly-apis/build-the-generator) | Type: lesson | Section: Build the Skill
    - [Run and Evaluate](/academy/agent-friendly-apis/run-and-evaluate) | Type: lesson | Section: Build the Skill
    - [Iterate and Ship](/academy/agent-friendly-apis/iterate-and-ship) | Type: lesson | Section: Build the Skill
- [Svelte on Vercel](/academy/svelte-on-vercel) | Type: course | Lessons: 15
  - **Deployment Foundations**
    - [Deploy to Vercel](/academy/svelte-on-vercel/deploy-svelte-to-vercel) | Type: lesson | Section: Deployment Foundations
    - [Environment Variables](/academy/svelte-on-vercel/environment-variables) | Type: lesson | Section: Deployment Foundations
    - [Preview Deployments](/academy/svelte-on-vercel/preview-deployments) | Type: lesson | Section: Deployment Foundations
    - [Runtime Selection](/academy/svelte-on-vercel/runtime-selection) | Type: lesson | Section: Deployment Foundations
  - **AI Gateway**
    - [Streaming Chat](/academy/svelte-on-vercel/streaming-chat) | Type: lesson | Section: AI Gateway
    - [Tools and Agents](/academy/svelte-on-vercel/tools-and-agents) | Type: lesson | Section: AI Gateway
    - [Structured Output](/academy/svelte-on-vercel/svelte-structured-output) | Type: lesson | Section: AI Gateway
    - [Fallbacks and Tracking](/academy/svelte-on-vercel/fallbacks-and-tracking) | Type: lesson | Section: AI Gateway
  - **Workflows**
    - [Your First Workflow](/academy/svelte-on-vercel/durable-tasks) | Type: lesson | Section: Workflows
    - [Parallel Steps](/academy/svelte-on-vercel/multi-step-workflows) | Type: lesson | Section: Workflows
    - [Error Handling](/academy/svelte-on-vercel/workflow-error-handling) | Type: lesson | Section: Workflows
  - **Production**
    - [ISR](/academy/svelte-on-vercel/isr) | Type: lesson | Section: Production
    - [Observability](/academy/svelte-on-vercel/svelte-observability) | Type: lesson | Section: Production
    - [Performance](/academy/svelte-on-vercel/performance) | Type: lesson | Section: Production
    - [What You Built](/academy/svelte-on-vercel/svelte-conclusion) | Type: lesson | Section: Production
- [Nuxt on Vercel](/academy/nuxt-on-vercel) | Type: course | Lessons: 18
  - **Foundations**
    - [Project Setup](/academy/nuxt-on-vercel/nuxt-project-setup) | Type: lesson | Section: Foundations
    - [Pages & Routing](/academy/nuxt-on-vercel/pages-and-routing) | Type: lesson | Section: Foundations
    - [Components & Reactivity](/academy/nuxt-on-vercel/components-and-reactivity) | Type: lesson | Section: Foundations
    - [Layouts & Navigation](/academy/nuxt-on-vercel/layouts-and-navigation) | Type: lesson | Section: Foundations
  - **Data & Server**
    - [Server Routes](/academy/nuxt-on-vercel/server-routes) | Type: lesson | Section: Data & Server
    - [Data Fetching](/academy/nuxt-on-vercel/data-fetching) | Type: lesson | Section: Data & Server
    - [Dynamic Routes](/academy/nuxt-on-vercel/dynamic-routes) | Type: lesson | Section: Data & Server
    - [Search & Filtering](/academy/nuxt-on-vercel/search-and-filtering) | Type: lesson | Section: Data & Server
  - **Authentication**
    - [Auth Setup](/academy/nuxt-on-vercel/auth-setup) | Type: lesson | Section: Authentication
    - [Login Flow](/academy/nuxt-on-vercel/login-flow) | Type: lesson | Section: Authentication
    - [Route Protection](/academy/nuxt-on-vercel/route-protection) | Type: lesson | Section: Authentication
  - **User Features**
    - [Saving Favorites](/academy/nuxt-on-vercel/saving-favorites) | Type: lesson | Section: User Features
    - [Visited Tracking](/academy/nuxt-on-vercel/visited-tracking) | Type: lesson | Section: User Features
    - [Reviews](/academy/nuxt-on-vercel/reviews) | Type: lesson | Section: User Features
  - **Performance & Polish**
    - [Debugging Tools](/academy/nuxt-on-vercel/debugging-tools) | Type: lesson | Section: Performance & Polish
    - [Rendering Modes](/academy/nuxt-on-vercel/rendering-modes) | Type: lesson | Section: Performance & Polish
    - [Optimization](/academy/nuxt-on-vercel/optimization) | Type: lesson | Section: Performance & Polish
    - [Deploy to Vercel](/academy/nuxt-on-vercel/deploy-nuxt-to-vercel) | Type: lesson | Section: Performance & Polish
- [Production Monorepos with Turborepo](/academy/production-monorepos) | Type: course | Lessons: 30
  - **Monorepo Fundamentals**
    - [Understanding Monorepos](/academy/production-monorepos/understanding-monorepos) | Type: lesson | Section: Monorepo Fundamentals
    - [Monorepos vs Polyrepos](/academy/production-monorepos/monorepos-vs-polyrepos) | Type: lesson | Section: Monorepo Fundamentals
    - [Turborepo Basics](/academy/production-monorepos/turborepo-basics) | Type: lesson | Section: Monorepo Fundamentals
  - **First Shared Package**
    - [Add Features Page](/academy/production-monorepos/add-features-page) | Type: lesson | Section: First Shared Package
    - [Create UI Package Structure](/academy/production-monorepos/create-ui-package) | Type: lesson | Section: First Shared Package
    - [Extract Card Component](/academy/production-monorepos/extract-card) | Type: lesson | Section: First Shared Package
    - [Extract Button Component](/academy/production-monorepos/extract-button-component) | Type: lesson | Section: First Shared Package
    - [Deploy Web App](/academy/production-monorepos/deploy-web-app) | Type: lesson | Section: First Shared Package
  - **Second App**
    - [Create Snippet Manager App](/academy/production-monorepos/create-snippet-app) | Type: lesson | Section: Second App
    - [Build Snippet List Page](/academy/production-monorepos/snippet-list-page) | Type: lesson | Section: Second App
    - [Add CodeBlock and SnippetCard](/academy/production-monorepos/add-codeblock-snippetcard) | Type: lesson | Section: Second App
    - [Add Snippet Creation Modal](/academy/production-monorepos/snippet-creation-modal) | Type: lesson | Section: Second App
    - [Deploy Both Apps](/academy/production-monorepos/deploy-both-apps) | Type: lesson | Section: Second App
  - **Shared Configs & Utils**
    - [Extract Shared Configs](/academy/production-monorepos/extract-shared-configs) | Type: lesson | Section: Shared Configs & Utils
    - [Add Shared Utils](/academy/production-monorepos/add-shared-utils) | Type: lesson | Section: Shared Configs & Utils
    - [Update Turborepo Pipeline](/academy/production-monorepos/update-turborepo-pipeline) | Type: lesson | Section: Shared Configs & Utils
  - **Testing**
    - [Set up Vitest in UI Package](/academy/production-monorepos/set-up-vitest) | Type: lesson | Section: Testing
    - [Write Component Tests](/academy/production-monorepos/write-component-tests) | Type: lesson | Section: Testing
    - [Configure Turborepo for Tests](/academy/production-monorepos/configure-turborepo-tests) | Type: lesson | Section: Testing
    - [Test Caching in Action](/academy/production-monorepos/test-caching) | Type: lesson | Section: Testing
  - **Pipeline Optimization**
    - [Add GitHub Actions](/academy/production-monorepos/github-actions) | Type: lesson | Section: Pipeline Optimization
    - [Filtering and Git-Based Filtering](/academy/production-monorepos/filtering-git-based) | Type: lesson | Section: Pipeline Optimization
    - [Remote Caching Setup](/academy/production-monorepos/remote-caching) | Type: lesson | Section: Pipeline Optimization
  - **Add Third App**
    - [Add Docs App](/academy/production-monorepos/add-docs-app) | Type: lesson | Section: Add Third App
    - [Deploy All Apps](/academy/production-monorepos/deploy-all-apps) | Type: lesson | Section: Add Third App
    - [Multi-App Development](/academy/production-monorepos/multi-app-development) | Type: lesson | Section: Add Third App
  - **Enterprise Patterns**
    - [Turborepo Generators](/academy/production-monorepos/turborepo-generators) | Type: lesson | Section: Enterprise Patterns
    - [Changesets for Versioning](/academy/production-monorepos/changesets-versioning) | Type: lesson | Section: Enterprise Patterns
    - [Code Governance](/academy/production-monorepos/code-governance) | Type: lesson | Section: Enterprise Patterns
    - [Production Patterns with next-forge](/academy/production-monorepos/next-forge-patterns) | Type: lesson | Section: Enterprise Patterns
- [Optimize Your Vercel Account](/academy/optimize-your-vercel-account) | Type: course | Lessons: 23
  - **Foundations**
    - [Deploy Saturday](/academy/optimize-your-vercel-account/deploy-saturday) | Type: lesson | Section: Foundations
    - [Tour the Dashboard](/academy/optimize-your-vercel-account/tour-the-dashboard) | Type: lesson | Section: Foundations
    - [Read the Usage Page](/academy/optimize-your-vercel-account/read-the-usage-page) | Type: lesson | Section: Foundations
  - **Lock It Down**
    - [Sensitive Env Vars](/academy/optimize-your-vercel-account/sensitive-env-vars) | Type: lesson | Section: Lock It Down
    - [Deployment Protection](/academy/optimize-your-vercel-account/deployment-protection) | Type: lesson | Section: Lock It Down
    - [Firewall Rules](/academy/optimize-your-vercel-account/firewall-rules) | Type: lesson | Section: Lock It Down
    - [Bots and Activity Log](/academy/optimize-your-vercel-account/bots-and-activity-log) | Type: lesson | Section: Lock It Down
  - **Compute & Caching**
    - [Fluid Compute](/academy/optimize-your-vercel-account/fluid-compute) | Type: lesson | Section: Compute & Caching
    - [Runtime Cache](/academy/optimize-your-vercel-account/runtime-cache) | Type: lesson | Section: Compute & Caching
    - [ISR Writes](/academy/optimize-your-vercel-account/isr-writes) | Type: lesson | Section: Compute & Caching
  - **Bandwidth & Builds**
    - [Image Optimization](/academy/optimize-your-vercel-account/image-optimization) | Type: lesson | Section: Bandwidth & Builds
    - [CDN Requests](/academy/optimize-your-vercel-account/edge-requests) | Type: lesson | Section: Bandwidth & Builds
    - [Build Minutes](/academy/optimize-your-vercel-account/build-minutes) | Type: lesson | Section: Bandwidth & Builds
    - [Observability Sampling](/academy/optimize-your-vercel-account/observability-sampling) | Type: lesson | Section: Bandwidth & Builds
    - [Automate the Audit](/academy/optimize-your-vercel-account/automate-the-audit) | Type: lesson | Section: Bandwidth & Builds
  - **Pro Upgrades**
    - [2FA Enforcement](/academy/optimize-your-vercel-account/two-factor-enforcement) | Type: lesson | Section: Pro Upgrades
    - [RBAC and Groups](/academy/optimize-your-vercel-account/rbac-and-groups) | Type: lesson | Section: Pro Upgrades
    - [Retention Policies](/academy/optimize-your-vercel-account/retention-policies) | Type: lesson | Section: Pro Upgrades
  - **Enterprise Controls**
    - [SAML and SSO](/academy/optimize-your-vercel-account/saml-and-sso) | Type: lesson | Section: Enterprise Controls
    - [Audit Logs](/academy/optimize-your-vercel-account/audit-logs) | Type: lesson | Section: Enterprise Controls
    - [Preview Lockdown](/academy/optimize-your-vercel-account/preview-lockdown) | Type: lesson | Section: Enterprise Controls
    - [Backend Egress](/academy/optimize-your-vercel-account/backend-egress) | Type: lesson | Section: Enterprise Controls
    - [Managed Rules](/academy/optimize-your-vercel-account/managed-rules) | Type: lesson | Section: Enterprise Controls
- [Microfrontends on Vercel](/academy/microfrontends-on-vercel) | Type: course | Lessons: 17
  - **Foundations**
    - [When Microfrontends](/academy/microfrontends-on-vercel/when-microfrontends) | Type: lesson | Section: Foundations
    - [Architecture Patterns](/academy/microfrontends-on-vercel/architecture-patterns) | Type: lesson | Section: Foundations
    - [Monorepo Setup](/academy/microfrontends-on-vercel/monorepo-setup) | Type: lesson | Section: Foundations
    - [Project Structure](/academy/microfrontends-on-vercel/project-structure) | Type: lesson | Section: Foundations
  - **Vertical Microfrontends**
    - [Configuration Basics](/academy/microfrontends-on-vercel/configuration-basics) | Type: lesson | Section: Vertical Microfrontends
    - [Path Routing Deep Dive](/academy/microfrontends-on-vercel/path-routing) | Type: lesson | Section: Vertical Microfrontends
    - [MFE Local Development](/academy/microfrontends-on-vercel/mfe-local-development) | Type: lesson | Section: Vertical Microfrontends
    - [Shared Packages](/academy/microfrontends-on-vercel/shared-packages-introduction) | Type: lesson | Section: Vertical Microfrontends
    - [Deployment Workflow](/academy/microfrontends-on-vercel/deployment-workflow) | Type: lesson | Section: Vertical Microfrontends
  - **Production Patterns**
    - [Navigation Performance](/academy/microfrontends-on-vercel/navigation-performance) | Type: lesson | Section: Production Patterns
    - [Testing Strategies](/academy/microfrontends-on-vercel/testing-strategies) | Type: lesson | Section: Production Patterns
    - [Observability](/academy/microfrontends-on-vercel/observability) | Type: lesson | Section: Production Patterns
    - [Security and Firewall](/academy/microfrontends-on-vercel/security-firewall) | Type: lesson | Section: Production Patterns
  - **Advanced Patterns**
    - [Feature Flag Routing](/academy/microfrontends-on-vercel/feature-flag-routing) | Type: lesson | Section: Advanced Patterns
    - [Incremental Migration](/academy/microfrontends-on-vercel/incremental-migration) | Type: lesson | Section: Advanced Patterns
    - [Remote Components Intro](/academy/microfrontends-on-vercel/remote-components-intro) | Type: lesson | Section: Advanced Patterns
    - [Conclusion](/academy/microfrontends-on-vercel/microfrontends-conclusion) | Type: lesson | Section: Advanced Patterns
- [Next.js Foundations](/academy/nextjs-foundations) | Type: course | Lessons: 27
  - **Foundation & Setup**
    - [Project Setup](/academy/nextjs-foundations/project-setup) | Type: lesson | Section: Foundation & Setup
    - [App Router Basics](/academy/nextjs-foundations/app-router-basics) | Type: lesson | Section: Foundation & Setup
    - [Server and Client Components](/academy/nextjs-foundations/server-and-client-components) | Type: lesson | Section: Foundation & Setup
    - [Dynamic Routing](/academy/nextjs-foundations/dynamic-routing) | Type: lesson | Section: Foundation & Setup
    - [Environment and Security](/academy/nextjs-foundations/env-and-security) | Type: lesson | Section: Foundation & Setup
    - [Errors and Not Found](/academy/nextjs-foundations/errors-and-not-found) | Type: lesson | Section: Foundation & Setup
    - [Proxy Basics](/academy/nextjs-foundations/proxy-basics) | Type: lesson | Section: Foundation & Setup
  - **Core Features**
    - [Client‑Server Component Boundaries](/academy/nextjs-foundations/client-server-boundaries) | Type: lesson | Section: Core Features
    - [Component Composition Patterns](/academy/nextjs-foundations/component-composition-patterns) | Type: lesson | Section: Core Features
    - [Not Found & Errors](/academy/nextjs-foundations/not-found-and-error-surfaces) | Type: lesson | Section: Core Features
    - [Nested Layouts](/academy/nextjs-foundations/nested-layouts) | Type: lesson | Section: Core Features
    - [Data Fetching Without Waterfalls](/academy/nextjs-foundations/data-fetching-without-waterfalls) | Type: lesson | Section: Core Features
    - [Navigation](/academy/nextjs-foundations/navigation) | Type: lesson | Section: Core Features
    - [params vs searchParams](/academy/nextjs-foundations/params-vs-searchparams) | Type: lesson | Section: Core Features
    - [Server Actions for Forms](/academy/nextjs-foundations/server-actions-for-forms) | Type: lesson | Section: Core Features
    - [Connecting Apps with Rewrites](/academy/nextjs-foundations/multi-app-routing) | Type: lesson | Section: Core Features
  - **Advanced Patterns**
    - [Cache Components for Instant and Fresh Pages](/academy/nextjs-foundations/cache-components) | Type: lesson | Section: Advanced Patterns
    - [Dynamic Metadata Done Right](/academy/nextjs-foundations/dynamic-metadata-done-right) | Type: lesson | Section: Advanced Patterns
    - [Suspense and Streaming](/academy/nextjs-foundations/suspense-and-streaming) | Type: lesson | Section: Advanced Patterns
    - [Images (next/image)](/academy/nextjs-foundations/images-next-image) | Type: lesson | Section: Advanced Patterns
    - [Fonts (next/font)](/academy/nextjs-foundations/fonts-with-next-font) | Type: lesson | Section: Advanced Patterns
    - [Core Web Vitals + Measurement](/academy/nextjs-foundations/core-web-vitals-and-measurement) | Type: lesson | Section: Advanced Patterns
  - **Polish & Presentation**
    - [Security Review: APIs and Config](/academy/nextjs-foundations/security-review-apis-and-config) | Type: lesson | Section: Polish & Presentation
    - [Query Performance Patterns](/academy/nextjs-foundations/query-performance-patterns) | Type: lesson | Section: Polish & Presentation
    - [Third‑Party Scripts](/academy/nextjs-foundations/third-party-scripts) | Type: lesson | Section: Polish & Presentation
    - [Advanced Image Optimization](/academy/nextjs-foundations/advanced-image-optimization) | Type: lesson | Section: Polish & Presentation
    - [Glossary](/academy/nextjs-foundations/glossary) | Type: lesson | Section: Polish & Presentation
- [Build Your Own AI Coding Agent Harness](/academy/build-ai-agent-harness) | Type: course | Lessons: 38
  - **The Agent Loop**
    - [From Chat to Agent](/academy/build-ai-agent-harness/from-chat-to-agent) | Type: lesson | Section: The Agent Loop
    - [Your First Tools](/academy/build-ai-agent-harness/your-first-tools) | Type: lesson | Section: The Agent Loop
    - [Completing the Toolbox](/academy/build-ai-agent-harness/completing-the-toolbox) | Type: lesson | Section: The Agent Loop
  - **Tool Design**
    - [Descriptions That Work](/academy/build-ai-agent-harness/descriptions-that-work) | Type: lesson | Section: Tool Design
    - [Shell Execution with Safety](/academy/build-ai-agent-harness/shell-execution-with-safety) | Type: lesson | Section: Tool Design
    - [Approval Gates](/academy/build-ai-agent-harness/approval-gates) | Type: lesson | Section: Tool Design
  - **The System Prompt**
    - [Structuring Agent Instructions](/academy/build-ai-agent-harness/structuring-agent-instructions) | Type: lesson | Section: The System Prompt
    - [Dynamic Prompt Construction](/academy/build-ai-agent-harness/dynamic-prompt-construction) | Type: lesson | Section: The System Prompt
    - [Verification Gates](/academy/build-ai-agent-harness/verification-gates) | Type: lesson | Section: The System Prompt
    - [Project Context](/academy/build-ai-agent-harness/project-context) | Type: lesson | Section: The System Prompt
  - **The Sandbox Abstraction**
    - [Designing the Interface](/academy/build-ai-agent-harness/designing-the-interface) | Type: lesson | Section: The Sandbox Abstraction
    - [Local Implementation](/academy/build-ai-agent-harness/local-implementation) | Type: lesson | Section: The Sandbox Abstraction
    - [In-Memory Implementation](/academy/build-ai-agent-harness/in-memory-implementation) | Type: lesson | Section: The Sandbox Abstraction
    - [Cloud Implementation](/academy/build-ai-agent-harness/cloud-implementation) | Type: lesson | Section: The Sandbox Abstraction
    - [Lifecycle Hooks](/academy/build-ai-agent-harness/lifecycle-hooks) | Type: lesson | Section: The Sandbox Abstraction
  - **Context Management**
    - [The Problem](/academy/build-ai-agent-harness/the-problem) | Type: lesson | Section: Context Management
    - [Pruning Old Results](/academy/build-ai-agent-harness/pruning-old-results) | Type: lesson | Section: Context Management
    - [Tool Output Design](/academy/build-ai-agent-harness/tool-output-design) | Type: lesson | Section: Context Management
    - [Cache Control](/academy/build-ai-agent-harness/cache-control) | Type: lesson | Section: Context Management
  - **Subagent Delegation**
    - [Why Delegate](/academy/build-ai-agent-harness/why-delegate) | Type: lesson | Section: Subagent Delegation
    - [Explorer Subagent](/academy/build-ai-agent-harness/explorer-subagent) | Type: lesson | Section: Subagent Delegation
    - [Executor Subagent](/academy/build-ai-agent-harness/executor-subagent) | Type: lesson | Section: Subagent Delegation
    - [Task Tool](/academy/build-ai-agent-harness/task-tool) | Type: lesson | Section: Subagent Delegation
  - **Sandbox Lifecycle**
    - [State Machine](/academy/build-ai-agent-harness/state-machine) | Type: lesson | Section: Sandbox Lifecycle
    - [Snapshot and Restore](/academy/build-ai-agent-harness/snapshot-and-restore) | Type: lesson | Section: Sandbox Lifecycle
    - [Durable Workflows](/academy/build-ai-agent-harness/durable-workflows) | Type: lesson | Section: Sandbox Lifecycle
    - [Hard-Won Lessons](/academy/build-ai-agent-harness/hard-won-lessons) | Type: lesson | Section: Sandbox Lifecycle
  - **Human-in-the-Loop**
    - [Structured Questions](/academy/build-ai-agent-harness/structured-questions) | Type: lesson | Section: Human-in-the-Loop
    - [Approval Config](/academy/build-ai-agent-harness/approval-config) | Type: lesson | Section: Human-in-the-Loop
  - **Planning and Verification**
    - [Todo Tool](/academy/build-ai-agent-harness/todo-tool) | Type: lesson | Section: Planning and Verification
    - [Fast Context Understanding](/academy/build-ai-agent-harness/fast-context-understanding) | Type: lesson | Section: Planning and Verification
    - [Verification Contract](/academy/build-ai-agent-harness/verification-contract) | Type: lesson | Section: Planning and Verification
  - **Surfaces**
    - [CLI Entry Point](/academy/build-ai-agent-harness/cli-entry-point) | Type: lesson | Section: Surfaces
    - [Streaming and Tool Rendering](/academy/build-ai-agent-harness/streaming-and-tool-rendering) | Type: lesson | Section: Surfaces
    - [Web Surface](/academy/build-ai-agent-harness/web-surface) | Type: lesson | Section: Surfaces
  - **Extensibility**
    - [Skills System](/academy/build-ai-agent-harness/skills-system) | Type: lesson | Section: Extensibility
    - [Custom Tools](/academy/build-ai-agent-harness/custom-tools) | Type: lesson | Section: Extensibility
    - [Extension Points](/academy/build-ai-agent-harness/extension-points) | Type: lesson | Section: Extensibility
- [Slack Agents on Vercel with the AI SDK](/academy/slack-agents) | Type: course | Lessons: 20
  - **Orientation Boot First Run**
    - [Project Setup](/academy/slack-agents/sandbox-repo-setup-smoke-test) | Type: lesson | Section: Orientation Boot First Run
    - [Repository Overview](/academy/slack-agents/repository-flyover) | Type: lesson | Section: Orientation Boot First Run
    - [Boot Checks & Health](/academy/slack-agents/boot-checks-and-health) | Type: lesson | Section: Orientation Boot First Run
    - [Local Development Tunnel](/academy/slack-agents/tunnel-orchestration) | Type: lesson | Section: Orientation Boot First Run
  - **Slack Apps With Bolt**
    - [App Manifests](/academy/slack-agents/manifest-and-scopes) | Type: lesson | Section: Slack Apps With Bolt
    - [Bolt Middleware](/academy/slack-agents/bolt-nitro-middleware-and-logging) | Type: lesson | Section: Slack Apps With Bolt
    - [Ack & Latency](/academy/slack-agents/acknowledgment-and-latency) | Type: lesson | Section: Slack Apps With Bolt
  - **Interaction Surfaces**
    - [Slash Commands](/academy/slack-agents/slash-commands) | Type: lesson | Section: Interaction Surfaces
    - [Shortcuts and Modals](/academy/slack-agents/shortcuts-and-modals) | Type: lesson | Section: Interaction Surfaces
    - [Views and App Home](/academy/slack-agents/views-and-app-home) | Type: lesson | Section: Interaction Surfaces
    - [Assistant Context](/academy/slack-agents/assistant-thread-context-changed) | Type: lesson | Section: Interaction Surfaces
  - **AI Orchestration Tools**
    - [System Prompts](/academy/slack-agents/system-prompts-shape-behavior) | Type: lesson | Section: AI Orchestration Tools
    - [AI Tools and Functions](/academy/slack-agents/ai-tools-and-functions) | Type: lesson | Section: AI Orchestration Tools
    - [Status Communication](/academy/slack-agents/status-communication) | Type: lesson | Section: AI Orchestration Tools
    - [Error Handling and Resilience](/academy/slack-agents/error-handling-and-resilience) | Type: lesson | Section: AI Orchestration Tools
    - [AI Gateway](/academy/slack-agents/slack-ai-gateway) | Type: lesson | Section: AI Orchestration Tools
  - **Deployment and Ops**
    - [Deploy to Vercel](/academy/slack-agents/deploy-to-vercel) | Type: lesson | Section: Deployment and Ops
    - [Scopes & Structured Logs](/academy/slack-agents/scopes-and-structured-logs) | Type: lesson | Section: Deployment and Ops
    - [Operations Runbook](/academy/slack-agents/operations-runbook) | Type: lesson | Section: Deployment and Ops
  - **Conclusion**
    - [What's Next](/academy/slack-agents/whats-next) | Type: lesson | Section: Conclusion
- [Building Filesystem Agents](/academy/filesystem-agents) | Type: course | Lessons: 6
  - **Building an Agent**
    - [Project Setup](/academy/filesystem-agents/filesystem-project-setup) | Type: lesson | Section: Building an Agent
    - [Agent Skeleton](/academy/filesystem-agents/agent-skeleton) | Type: lesson | Section: Building an Agent
    - [Bash Tool](/academy/filesystem-agents/bash-tool) | Type: lesson | Section: Building an Agent
  - **Running in the Sandbox**
    - [Wire Up the Sandbox](/academy/filesystem-agents/wire-up-sandbox) | Type: lesson | Section: Running in the Sandbox
    - [Files and Instructions](/academy/filesystem-agents/files-and-instructions) | Type: lesson | Section: Running in the Sandbox
    - [Test and Extend](/academy/filesystem-agents/test-and-extend) | Type: lesson | Section: Running in the Sandbox
- [Vercel Foundations](/academy/vercel-foundations) | Type: course | Lessons: 9
  - [Deployments](/academy/vercel-foundations/deployments) | Type: lesson
  - [The v0 Way](/academy/vercel-foundations/v0-way) | Type: lesson
  - [Observability](/academy/vercel-foundations/platform-observability) | Type: lesson
  - [Vercel SKUs](/academy/vercel-foundations/skus) | Type: lesson
  - [Vercel Toolbar](/academy/vercel-foundations/toolbar) | Type: lesson
  - [Logs](/academy/vercel-foundations/logs) | Type: lesson
  - [Account Setup](/academy/vercel-foundations/vercel-account-setup) | Type: lesson
  - [Settings](/academy/vercel-foundations/vercel-settings) | Type: lesson
  - [Security](/academy/vercel-foundations/security) | Type: lesson
- [Enterprise Apps and Agents](/academy/enterprise-apps-agents) | Type: course | Lessons: 13
  - **From Prototype to a Production Path**
    - [Deploy the Prototype](/academy/enterprise-apps-agents/deploy-the-prototype) | Type: lesson | Section: From Prototype to a Production Path
    - [Define the App's Job](/academy/enterprise-apps-agents/define-success) | Type: lesson | Section: From Prototype to a Production Path
    - [Run the Production Readiness Review](/academy/enterprise-apps-agents/readiness-review) | Type: lesson | Section: From Prototype to a Production Path
  - **Create One Governed Path**
    - [Who Builds and Owns It](/academy/enterprise-apps-agents/who-builds-and-owns-it) | Type: lesson | Section: Create One Governed Path
    - [Who Can Use It](/academy/enterprise-apps-agents/who-can-use-it) | Type: lesson | Section: Create One Governed Path
    - [What the Application Can Reach](/academy/enterprise-apps-agents/what-the-app-can-reach) | Type: lesson | Section: Create One Governed Path
  - **Make AI Decisions Dependable**
    - [Choose the Model Deliberately](/academy/enterprise-apps-agents/choose-the-model) | Type: lesson | Section: Make AI Decisions Dependable
    - [Keep Policy Out of the Prompt](/academy/enterprise-apps-agents/keep-policy-out-of-the-prompt) | Type: lesson | Section: Make AI Decisions Dependable
    - [Test Rules and Model](/academy/enterprise-apps-agents/test-the-boundary) | Type: lesson | Section: Make AI Decisions Dependable
    - [Record and Approve the Decision](/academy/enterprise-apps-agents/record-and-approve-the-decision) | Type: lesson | Section: Make AI Decisions Dependable
    - [Build the Intake Agent](/academy/enterprise-apps-agents/build-the-intake-agent) | Type: lesson | Section: Make AI Decisions Dependable
  - **Prove It Is Ready**
    - [Measure Adoption, Quality, and Cost](/academy/enterprise-apps-agents/measure-it) | Type: lesson | Section: Prove It Is Ready
    - [Prove It Is Ready](/academy/enterprise-apps-agents/governed-application) | Type: lesson | Section: Prove It Is Ready
- [v0 Foundations](/academy/v0-foundations) | Type: course | Lessons: 7
  - [Email with Resend](/academy/v0-foundations/handling-email-with-resend) | Type: lesson
  - [Add a Supabase Database](/academy/v0-foundations/integrate-supabase-database) | Type: lesson
  - [Customize with Prompts](/academy/v0-foundations/customize-with-prompts) | Type: lesson
  - [v0 Vibecoding Guide](/academy/v0-foundations/vibecoding-guide) | Type: lesson
  - [Publish to a Domain](/academy/v0-foundations/publish-and-customize-your-domain) | Type: lesson
  - [GitHub and Next Steps](/academy/v0-foundations/github-integration-and-next-steps) | Type: lesson
  - [Screenshots and Versions](/academy/v0-foundations/enhance-design-with-screenshots-and-versions) | Type: lesson
- [React UI with shadcn/ui + Radix + Tailwind](/academy/shadcn-ui) | Type: course | Lessons: 17
  - **Intro to Modern UI Libraries**
    - [Evolution of Component Libraries](/academy/shadcn-ui/evolution-of-component-libraries) | Type: lesson | Section: Intro to Modern UI Libraries
    - [Why shadcn/ui is Different](/academy/shadcn-ui/why-shadcn-ui-is-different) | Type: lesson | Section: Intro to Modern UI Libraries
    - [Core Concepts](/academy/shadcn-ui/core-concepts) | Type: lesson | Section: Intro to Modern UI Libraries
    - [Understanding components.json](/academy/shadcn-ui/components-json) | Type: lesson | Section: Intro to Modern UI Libraries
    - [What are Radix Primitives?](/academy/shadcn-ui/what-are-radix-primitives) | Type: lesson | Section: Intro to Modern UI Libraries
    - [Anatomy of a Primitive](/academy/shadcn-ui/anatomy-of-a-primitive) | Type: lesson | Section: Intro to Modern UI Libraries
  - **Get Started**
    - [Installing shadcn/ui](/academy/shadcn-ui/installing-shadcn-ui) | Type: lesson | Section: Get Started
    - [Adding Your First Component](/academy/shadcn-ui/adding-your-first-component) | Type: lesson | Section: Get Started
    - [Overriding Styles with Tailwind](/academy/shadcn-ui/overriding-styles-with-tailwind) | Type: lesson | Section: Get Started
    - [Updating and Maintaining Components](/academy/shadcn-ui/updating-and-maintaining-components) | Type: lesson | Section: Get Started
    - [Exploring globals.css](/academy/shadcn-ui/exploring-globals-css) | Type: lesson | Section: Get Started
    - [What is a Component Registry?](/academy/shadcn-ui/what-is-a-component-registry) | Type: lesson | Section: Get Started
  - **Writing Components**
    - [The Anatomy of shadcn/ui Components](/academy/shadcn-ui/extending-shadcn-ui-with-custom-components) | Type: lesson | Section: Writing Components
    - [Creating a shadcn Registry File](/academy/shadcn-ui/creating-a-shadcn-registry-file) | Type: lesson | Section: Writing Components
    - [Publishing Your Components](/academy/shadcn-ui/publishing-your-components) | Type: lesson | Section: Writing Components
    - [useControllableState](/academy/shadcn-ui/use-controllable-state) | Type: lesson | Section: Writing Components
    - [Compound Components and Advanced Composition](/academy/shadcn-ui/compound-components-and-advanced-composition) | Type: lesson | Section: Writing Components
