# Docs - Getting Started - [Overview](/docs/getting-started): What Zap Studio is, what each package covers, and where agent skills live. - **Packages** - Packages: Open-source packages by Zap Studio - fetch - [Overview](/docs/packages/fetch): Understand what fetch solves, how it validates responses, and when to use each API surface. - [Getting Started](/docs/packages/fetch/getting-started): Install fetch and make your first schema-validated HTTP request. - [$fetch](/docs/packages/fetch/fetch-function): Use the low-level fetch function for raw responses or schema-validated data. - [API Methods](/docs/packages/fetch/api-methods): Use HTTP method helpers for schema-validated JSON requests. - [createFetch](/docs/packages/fetch/create-fetch): Create configured fetch clients with shared base URLs, headers, query params, and throw behavior. - [Validation](/docs/packages/fetch/validation): Validate fetch responses with Standard Schema-compatible validators. - [Error Handling](/docs/packages/fetch/errors): Handle HTTP, validation, parsing, abort, and runtime fetch failures. - permit - [Overview](/docs/packages/permit): A type-safe, declarative authorization library with Standard Schema support and composable conditions. - [Creating Policies](/docs/packages/permit/creating-policies): Define resources, actions, context, and rules to build your first authorization policy with permit. - [Policy Rules](/docs/packages/permit/policy-rules): Use allow(), deny(), and when() to define authorization rules in permit. - [Conditions](/docs/packages/permit/conditions): Build complex authorization rules using and(), or(), not(), and has() condition combinators in permit. - [Role-Based Access Control](/docs/packages/permit/roles): Implement RBAC with role hierarchies and multi-role support using hasRole() in permit. - [Merging Policies](/docs/packages/permit/merging-policies): Combine multiple policies with deny-overrides or allow-overrides strategies in permit. - [Error Handling](/docs/packages/permit/errors): Handle authorization errors and ensure exhaustive type checking with PolicyError and assertNever. - retry - [Overview](/docs/packages/retry): A composable retry package with policy classes, a built-in runner, and structured terminal errors. - [Getting Started](/docs/packages/retry/getting-started): Install retry and run your first retry policy. - [FixedDelay](/docs/packages/retry/fixed-delay): Retry policy with a constant delay between attempts. - [ExponentialBackoff](/docs/packages/retry/exponential-backoff): Retry policy with exponential delay growth and an upper delay bound. - [Running Policies](/docs/packages/retry/running-policies): Use BaseRetryPolicy.run for built-in orchestration with optional custom sleep behavior. - [Abort Signal](/docs/packages/retry/abort-signal): Cancel retry orchestration with AbortSignal before, between, or during retries. - [Custom Policies](/docs/packages/retry/custom-policies): Create custom retry policies by extending BaseRetryPolicy or implementing the retry types directly. - [RetryError](/docs/packages/retry/retry-error): Terminal error classes thrown for retry exhaustion and cancellation. - [Types](/docs/packages/retry/types): Understand retry policy contracts, generic inputs, and runner options. - validation - [Overview](/docs/packages/validation): Understand Standard Schema, the interoperability problem it solves, and why Zap Studio built validation. - [Getting Started](/docs/packages/validation/getting-started): Install validation and validate your first payload in a few lines. - [Concepts](/docs/packages/validation/concepts): Beginner-friendly concepts for schema validation in validation. - [How to Validate](/docs/packages/validation/how-to-validate): Learn validation fundamentals and when to use standardValidate vs standardValidateSync. - [Create Validators](/docs/packages/validation/create-validators): Use createStandardValidator and createSyncStandardValidator to build reusable validation functions. - [Schema Guard](/docs/packages/validation/is-standard-schema): Understand the role of isStandardSchema and how to safely validate unknown schema inputs. - [Handling Errors](/docs/packages/validation/handling-errors): Why validation error handling matters and how ValidationError helps you catch failures reliably. - webhooks - [Overview](/docs/packages/webhooks): Schema-first webhook routing with a clear path from setup to production usage. - [Getting Started](/docs/packages/webhooks/getting-started): Install the package and register your first schema-first webhook route. - [Guides](/docs/packages/webhooks/guides): Production-oriented provider guides for GitHub and Stripe webhooks. - [Verification](/docs/packages/webhooks/verification): Verify webhook authenticity with createHmacVerifier or a custom verify function. - [Lifecycle Hooks](/docs/packages/webhooks/lifecycle-hooks): Use before, after, and onError hooks for logging, metrics, and centralized error handling. - [Adapters](/docs/packages/webhooks/adapters): Build framework adapters with BaseAdapter and the normalized request/response contract.