# better-result ## Docs - [Async Operations](https://better-result.dev/advanced/async-operations.md): Work with promises and async generators in Result workflows - [Best Practices](https://better-result.dev/advanced/best-practices.md): Patterns, conventions, and guidelines for using better-result effectively - [Retry Logic](https://better-result.dev/advanced/retry-logic.md): Implement resilient error handling with automatic retry strategies - [Serialization](https://better-result.dev/advanced/serialization.md): Serialize and deserialize Result types for RPC, storage, and data transfer - [Instance Methods](https://better-result.dev/api/instance-methods.md): Methods available on Ok and Err instances - [ok() and err()](https://better-result.dev/api/ok-and-err.md): Factory functions for creating Ok and Err results - [Panic](https://better-result.dev/api/panic.md): Unrecoverable error type for defects in user code - [Result](https://better-result.dev/api/result.md): The core Result type - a discriminated union for type-safe error handling - [Serialization API](https://better-result.dev/api/serialization-api.md): Serialize and deserialize Result types for RPC, server actions, and data transfer - [Static Methods](https://better-result.dev/api/static-methods.md): Static utility methods on the Result namespace - [TaggedError](https://better-result.dev/api/tagged-error.md): Factory for creating discriminated error classes with type-safe pattern matching - [Type Utilities](https://better-result.dev/api/type-utilities.md): TypeScript type utilities for extracting and inferring Result types - [UnhandledException](https://better-result.dev/api/unhandled-exception.md): Wrapper for exceptions caught by Result.try and Result.tryPromise - [Creating Results](https://better-result.dev/core/creating-results.md): Learn how to create Result instances with Result.ok(), Result.err(), Result.try(), and Result.tryPromise() - [Error Handling](https://better-result.dev/core/error-handling.md): Master TaggedError, exhaustive error matching, and panic vs recoverable errors - [Generator Composition](https://better-result.dev/core/generator-composition.md): Master Result.gen() for imperative-style error handling with automatic short-circuiting and type-safe error unions - [Pattern Matching](https://better-result.dev/core/pattern-matching.md): Handle success and error cases with Result.match(), type narrowing with isOk/isErr, and both data-first and pipeable APIs - [Transforming Results](https://better-result.dev/core/transforming-results.md): Transform success and error values with map, mapError, andThen, and tap methods - [Installation](https://better-result.dev/installation.md): Install better-result in your TypeScript project - [Introduction](https://better-result.dev/introduction.md): Lightweight Result type for TypeScript with generator-based composition - [Quickstart](https://better-result.dev/quickstart.md): Build your first application with better-result in minutes