# Receta > Guides and API reference for Receta, practical recipes on top of Remeda. ## Get started - [Introduction](https://receta.dev/docs.md): Receta makes failure, absence and flow visible in your types. - [Use with agents](https://receta.dev/docs/agents.md): Plain-text docs for coding agents, plus skills and lint rules that keep their output honest. - [Choose a module](https://receta.dev/docs/choose-a-module.md) - [Installation](https://receta.dev/docs/installation.md): Add Receta and Remeda, then import each module by its own path. - [Receta vs neverthrow: a neverthrow alternative](https://receta.dev/docs/neverthrow-alternative.md): Looking for a neverthrow alternative? Compare Receta and neverthrow on plain data, async chaining, bundle size and migration, with code run in both. ## Reference - [Async](https://receta.dev/docs/reference/async.md): 35 exports from @ontologyio/receta/async. - [Collection](https://receta.dev/docs/reference/collection.md): 31 exports from @ontologyio/receta/collection. - [Compare](https://receta.dev/docs/reference/compare.md): 19 exports from @ontologyio/receta/compare. - [Function](https://receta.dev/docs/reference/function.md): 25 exports from @ontologyio/receta/function. - [Lens](https://receta.dev/docs/reference/lens.md): 12 exports from @ontologyio/receta/lens. - [Memo](https://receta.dev/docs/reference/memo.md): 15 exports from @ontologyio/receta/memo. - [Number](https://receta.dev/docs/reference/number.md): 34 exports from @ontologyio/receta/number. - [Object](https://receta.dev/docs/reference/object.md): 31 exports from @ontologyio/receta/object. - [Option](https://receta.dev/docs/reference/option.md): 24 exports from @ontologyio/receta/option. - [Predicate](https://receta.dev/docs/reference/predicate.md): 46 exports from @ontologyio/receta/predicate. - [Result](https://receta.dev/docs/reference/result.md): 27 exports from @ontologyio/receta/result. - [String](https://receta.dev/docs/reference/string.md): 43 exports from @ontologyio/receta/string. - [Validation](https://receta.dev/docs/reference/validation.md): 55 exports from @ontologyio/receta/validation. ## Guides - [async: Overview](https://receta.dev/docs/async.md): Async utilities provide battle-tested patterns for handling concurrent operations, rate limits, retries, and timeouts—making your async code reliable without manual Promise juggling. - [async: Batching and Polling](https://receta.dev/docs/async/batching.md) - [async: Concurrency Control](https://receta.dev/docs/async/concurrency.md) - [async: Debounce and Throttle](https://receta.dev/docs/async/debounce-throttle.md) - [async: Migration Guide](https://receta.dev/docs/async/migration.md): From Manual Async to Async Utils - [async: Common Patterns & Recipes](https://receta.dev/docs/async/patterns.md): Real-world patterns for async operations using Receta's async module. All examples are production-ready and use actual APIs. - [async: Retry and Timeout Patterns](https://receta.dev/docs/async/retry-timeout.md) - [collection: Overview](https://receta.dev/docs/collection.md): Higher-level patterns for working with collections — hierarchical grouping, change detection, pagination, safe indexing, and set operations with custom comparators. - [collection: Change Detection with diff()](https://receta.dev/docs/collection/change-detection.md): Detect exactly what changed between two collections - added, updated, removed, and unchanged items. - [collection: Hierarchical Grouping](https://receta.dev/docs/collection/grouping.md): Deep dive into nest() and groupByPath() for organizing data hierarchically. - [collection: Migration Guide](https://receta.dev/docs/collection/migration.md): From Manual Collection Operations - [collection: Pagination](https://receta.dev/docs/collection/pagination.md): Master both pagination strategies for different use cases. - [collection: Common Patterns & Production Recipes](https://receta.dev/docs/collection/patterns.md): Real-world patterns from GitHub, Reddit, Stripe, and more. - [compare: Overview](https://receta.dev/docs/compare.md): Build composable, type-safe comparators for sorting complex data structures. No more brittle array.sort((a, b) => ...) callbacks scattered throughout your codebase. - [compare: Advanced Comparators](https://receta.dev/docs/compare/advanced.md): Advanced comparators provide specialized string sorting for case-insensitive and locale-aware scenarios. - [compare: Basic Comparators](https://receta.dev/docs/compare/basic-comparators.md): Basic comparators are the foundation of the Compare module. They create simple, reusable sorting functions for common scenarios. - [compare: Combinators](https://receta.dev/docs/compare/combinators.md): Combinators modify and combine comparators to create complex sorting logic from simple building blocks. - [compare: Migration Guide](https://receta.dev/docs/compare/migration.md): Step-by-step guide to refactoring existing sort code to use Compare module. - [compare: Common Patterns & Recipes](https://receta.dev/docs/compare/patterns.md): Production-ready sorting patterns for real-world applications. - [compare: Type-Specific Comparators](https://receta.dev/docs/compare/type-specific.md): Type-specific comparators provide specialized sorting for dates, numbers, strings, and booleans with proper handling of edge cases. - [function: Overview](https://receta.dev/docs/function.md) - [function: Composition Guide](https://receta.dev/docs/function/composition.md) - [function: Conditionals Guide](https://receta.dev/docs/function/conditionals.md) - [function: Control Flow Guide](https://receta.dev/docs/function/control-flow.md) - [function: Integration Guide](https://receta.dev/docs/function/integration.md) - [function: Partial Application Guide](https://receta.dev/docs/function/partial-application.md) - [function: Real-World Patterns](https://receta.dev/docs/function/real-world-patterns.md) - [lens: Overview](https://receta.dev/docs/lens.md): Lenses provide a composable, type-safe way to read and update deeply nested data structures without mutation. Think "dot notation that works for updates" with full immutability guarantees. - [lens: Lens Composition](https://receta.dev/docs/lens/composition.md): Lenses compose naturally, allowing you to build complex deep-access patterns from simple building blocks. - [lens: Lens Constructors](https://receta.dev/docs/lens/constructors.md): Lens constructors create the "focusing glasses" that let you zoom into specific parts of your data. This guide covers all five ways to create lenses. - [lens: Migration Guide](https://receta.dev/docs/lens/migration.md): Step-by-step guide for refactoring existing code to use lenses. - [lens: Lens Operations](https://receta.dev/docs/lens/operations.md): Once you have a lens, you perform three fundamental operations: view (read), set (write), and over (transform). - [lens: Common Patterns & Real-World Recipes](https://receta.dev/docs/lens/patterns.md): Copy-paste-ready patterns for common scenarios. - [memo: Overview](https://receta.dev/docs/memo.md) - [memo: Core Concepts](https://receta.dev/docs/memo/core-concepts.md) - [memo: Error Handling](https://receta.dev/docs/memo/error-handling.md) - [memo: Migration Guide](https://receta.dev/docs/memo/migration.md) - [memo: Patterns and Best Practices](https://receta.dev/docs/memo/patterns.md) - [memo: Practical Examples](https://receta.dev/docs/memo/practical-examples.md) - [memo: TypeScript Integration](https://receta.dev/docs/memo/typescript-integration.md) - [object: Overview](https://receta.dev/docs/object.md): The Object module provides utilities for safely manipulating nested objects with type-safe access, validation, and transformation. Unlike vanilla JavaScript or Lodash, all operations are immutable, integrate with Result/Option patterns, and work seamlessly in pipelines. - [object: Core Operations](https://receta.dev/docs/object/core-operations.md): The core operations provide fundamental transformations for restructuring objects. These 5 functions handle the most common scenarios: flattening hierarchies, renaming keys, filtering fields, and deep merging. - [object: Migration Guide](https://receta.dev/docs/object/migration.md): Step-by-step guide to migrating from Lodash or vanilla JavaScript object operations to Receta's Object module. - [object: Patterns & Recipes](https://receta.dev/docs/object/patterns.md): Copy-paste ready patterns for common real-world scenarios. All examples are production-ready and based on actual API structures. - [object: Safe Access](https://receta.dev/docs/object/safe-access.md): Safe access functions provide type-safe ways to read and modify deeply nested object structures without runtime errors. All operations are immutable and integrate with the Option pattern. - [object: Transformation](https://receta.dev/docs/object/transformation.md): Transformation functions allow you to systematically transform or filter object keys and values. These operations are essential for normalizing data, applying bulk transformations, and filtering unwanted properties. - [object: Validation](https://receta.dev/docs/object/validation.md): Validation functions ensure data integrity through runtime type checking and cleanup operations. These utilities help you validate unknown data, remove unwanted values, and ensure objects meet expected schemas. - [option: Overview](https://receta.dev/docs/option.md): Option represents values that might not exist, providing a type-safe alternative to null/undefined that composes cleanly in functional pipelines. - [option: Option Combinators](https://receta.dev/docs/option/combinators.md) - [option: Option Constructors](https://receta.dev/docs/option/constructors.md) - [option: Option Extractors](https://receta.dev/docs/option/extractors.md) - [option: Migration Guide](https://receta.dev/docs/option/migration.md): From Nullable to Option - [option: Option Patterns & Recipes](https://receta.dev/docs/option/patterns.md) - [option: Option Transformers](https://receta.dev/docs/option/transformers.md) - [predicate: Overview](https://receta.dev/docs/predicate.md): Predicates are reusable, type-safe functions for filtering, validation, and type narrowing. Build complex conditions from simple building blocks like gt(18), eq('active'), and where({ age: gt(18), status: eq('active') }). - [predicate: Predicate Builders](https://receta.dev/docs/predicate/builders.md) - [predicate: Predicate Combinators](https://receta.dev/docs/predicate/combinators.md) - [predicate: Comparison Predicates](https://receta.dev/docs/predicate/comparison.md): Comparison predicates test values against thresholds, ranges, and patterns. They're the building blocks for most filtering operations. - [predicate: Type Guards](https://receta.dev/docs/predicate/guards.md) - [predicate: Migration Guide](https://receta.dev/docs/predicate/migration.md): From Inline Filters to Predicates - [predicate: Common Patterns & Recipes](https://receta.dev/docs/predicate/patterns.md) - [result: Overview](https://receta.dev/docs/result.md): Result is a type that represents either success (Ok) or failure (Err), making errors visible in your function signatures and preventing runtime crashes. - [result: Combinators](https://receta.dev/docs/result/combinators.md): Working with Multiple Results - [result: Constructors](https://receta.dev/docs/result/constructors.md): Creating Results - [result: Extractors](https://receta.dev/docs/result/extractors.md): Getting Values Out of Results - [result: Migration Guide](https://receta.dev/docs/result/migration.md): From try-catch to Result - [result: Common Patterns & Recipes](https://receta.dev/docs/result/patterns.md) - [result: Transformers](https://receta.dev/docs/result/transformers.md): Working with Results - [validation: Overview](https://receta.dev/docs/validation.md): Like Result, but collects *all* errors instead of stopping at the first one. Perfect for form validation where users need to see every field error at once. - [validation: Combinators](https://receta.dev/docs/validation/combinators.md): Combinators are the key feature of the Validation module. They allow you to combine multiple validations and accumulate ALL errors, not just the first one. - [validation: Constructors](https://receta.dev/docs/validation/constructors.md): Constructors are functions that create `Validation` instances. They're the foundation for all validation operations. - [validation: Migration Guide](https://receta.dev/docs/validation/migration.md): Step-by-step guide for migrating from try-catch, Zod, Yup, or other validation approaches to Receta Validation. - [validation: Common Patterns & Real-World Recipes](https://receta.dev/docs/validation/patterns.md): Production-ready validation patterns for forms, APIs, bulk operations, and more. All examples are copy-paste ready and fully typed. - [validation: Built-in Validators](https://receta.dev/docs/validation/validators.md): Receta provides 22 ready-to-use validators for common validation scenarios. All validators return `Validation` with descriptive error messages.