```md
## Stripe Apps: Building and Managing Applications on Stripe

This documentation set provides comprehensive guidance on developing, deploying, and managing applications within the Stripe ecosystem through **Stripe Apps**. It covers everything from the fundamental concepts of app development to advanced UI customization and deployment strategies.

### Core Concepts and Getting Started

*   **Overview of Stripe Apps**: Understand the capabilities of Stripe Apps, which allow for extending Stripe with third-party services or embedding custom user interfaces directly into the Stripe Dashboard. Learn how to authenticate users, listen for events, and automate workflows.
*   **Getting Started with Stripe Apps**: This guide walks you through building a basic "Hello, world!" sample app, including setting up the Stripe CLI and creating a UI extension.
*   **How Stripe Apps Work**: Delve into the architecture of Stripe Apps, understanding the frontend (UI extensions) and backend components, and how they interact with the Stripe API.
*   **Common Use Cases**: Explore various application types (backend, frontend, full-stack) and their typical use cases, providing a roadmap for your development.

### Building Your Stripe App

*   **App Manifest Reference**: Understand the `stripe-app.json` file, which serves as the central configuration for your app, defining its ID, version, permissions, and more.
*   **API Authentication Methods**: Choose the appropriate authentication method for your app, including Platform keys, OAuth 2.0, and Restricted API Keys (RAKs).
*   **Authorization Flows**: Implement secure authorization flows, including guidance on PKCE OAuth workflows.
*   **Server-Side Logic**: Learn how to add backend code to your app for validating user actions, processing data, and integrating with third-party systems.
*   **Build a UI**: Develop custom user interfaces within the Stripe Dashboard using TypeScript, React, and Stripe's UI Extensions SDK.
    *   **How UI Extensions Work**: Understand the sandboxed iframe environment and how UI extensions interact with Stripe's components.
    *   **Next Generation UI Components**: Get early access to updated UI components for enhanced functionality.
    *   **UI Components**: Explore the comprehensive library of pre-built UI components for building your app's interface, including Accordion, Badge, Banner, Button, Input fields, and more.
    *   **Component Hierarchy Constraints**: Understand the rules governing how UI components can be composed to ensure a predictable UI.
    *   **Design Patterns**: Follow recommended design patterns for a consistent and user-friendly app experience.
    *   **Style Your App**: Learn how to style your app using provided design tokens to match the Stripe Dashboard's visual style.
    *   **Design Your App**: Access guidelines and philosophy for designing effective Stripe Apps.
*   **App Settings Page**: Create a dedicated page for users to configure their app settings within the Stripe Dashboard.
*   **Store Secret Credentials**: Securely store sensitive data like authentication tokens using the Secret Store API.

### Deployment and Management

*   **Distribution Options**: Learn how to share your Stripe Apps, either privately with your team or publicly on the Stripe App Marketplace.
*   **Upload and Install Your App**: Follow the steps to upload your app for team members or for public distribution.
*   **Enable Sandbox Support**: Configure your app to work seamlessly with Stripe's testing environments.
*   **Handle Different Modes**: Adapt your app to function correctly in both live mode and sandbox environments.
*   **Enable Local Network Access**: Configure your app to access local network resources for development and previewing.
*   **Add Deep Links**: Create deep links to navigate users directly to specific sections of your Stripe app within the Dashboard.
*   **Using Install Links**: Allow users to install your app outside of the Stripe App Marketplace.
*   **Manage Your App's Versions and Releases**: Understand app versioning and release management for shipping updates.
*   **Test Your App Externally**: Set up and distribute test versions of your app to gather feedback before public release.
*   **Publish Your App**: Learn the process of publishing your app to the Stripe App Marketplace, including app review requirements.
*   **Stripe Apps Quality Requirements**: Familiarize yourself with the quality standards for apps listed on the App Marketplace.
*   **Promote Your App**: Discover opportunities to partner with Stripe and grow your app's reach.

### Migration and Legacy Information

*   **Migrate an Extension to Stripe Apps**: Understand why and how to migrate existing legacy extensions to the newer Stripe Apps platform.
*   **Migrate a Plugin to Stripe Apps or Stripe Connect**: Explore your options for migrating third-party integrations that previously relied on secret API keys.
*   **Migrate a Plugin to an OAuth 2.0 App**: Specific guidance on migrating plugins to use OAuth 2.0 authentication.
*   **Migrate a Plugin to a RAK App**: Specific guidance on migrating plugins to use Restricted API Key (RAK) authentication.
*   **Legacy Extensions**: Information about the deprecated extensions integration pattern.

### Reference and Tools

*   **Stripe Apps CLI Reference**: Learn how to use the command-line interface to manage your Stripe apps.
*   **Permissions Reference**: Understand the available events and their required permissions for your app.
*   **Extension SDK API Reference**: A detailed documentation of the Extension SDK API for building UI extensions.
*   **Viewports Reference**: Learn about the different viewports where your UI extensions can be displayed within the Stripe Dashboard.
*   **Route Descriptors**: Navigate within the Dashboard using route descriptors for soft, context-preserving navigation.
*   **Sample Apps**: Browse working examples of Stripe Apps to inspire and guide your development.

This documentation set aims to equip developers with the knowledge and tools necessary to build powerful and integrated applications on the Stripe platform.
```