Skip to content

Latest commit

 

History

History

README.md

Featury Documentation

Welcome to the comprehensive documentation for Featury, a flexible Ruby gem for managing feature flags with powerful organization capabilities.

Table of Contents

Getting Started

Core Concepts

  • Features - Defining features with prefixes and descriptions
  • Groups - Organizing features into hierarchical groups
  • Actions - Defining custom actions for feature management
  • Resources - Type-safe resource definitions with Servactory
  • Conditions - Adding conditional logic to features

Usage

Integration

  • Integration - Backend storage implementations (Flipper, Redis, Database, HTTP APIs)

Reference

What is Featury?

Featury is a feature flag management library that provides:

  • Unified Interface: Manage multiple feature flags through a single class
  • Flexible Backend: Works with Flipper, Redis, databases, HTTP APIs, or any custom solution
  • Hierarchical Organization: Group related features with automatic prefix management
  • Type Safety: Built on Servactory for robust resource validation
  • Lifecycle Hooks: Before/after callbacks with customizable scope
  • Rich Introspection: Complete visibility into your feature configuration

Visit featury.servactory.com for comprehensive guides, API documentation, and tutorials.

Quick Links

Architecture Overview

Featury is built around several key concepts:

  1. Base Class: ApplicationFeature defines how features interact with your storage backend
  2. Feature Classes: Inherit from ApplicationFeature and define specific features
  3. Actions: Custom methods that operate on feature collections (e.g., enabled?, enable, disable)
  4. Resources: Type-safe inputs validated through Servactory
  5. Groups: Nested feature hierarchies for organization
  6. Conditions: Lambda-based validation logic

Philosophy

Featury follows these design principles:

  • Backend Agnostic: Actions receive feature names and options - you decide how to store them
  • Convention over Configuration: Automatic prefix generation from class names
  • Composability: Combine features, groups, resources, and conditions
  • Transparency: Full introspection through the info API
  • Type Safety: Leverage Servactory's resource validation

Getting Help

  • Read through the documentation in order for a complete understanding
  • Check Examples for real-world use cases
  • Review Best Practices for recommended patterns
  • Open an issue on GitHub for bugs or questions

Contributing

We welcome contributions! Please see our Contributing Guide for details.