## Stripe Apps: Building and Managing Applications on Stripe

This documentation set provides comprehensive guidance on developing, managing, and deploying applications within the Stripe ecosystem. It covers the entire lifecycle of a Stripe App, from initial setup and core development concepts to advanced features, UI components, and best practices for design and user experience.

### Core Concepts and Getting Started

*   **Stripe Apps Overview** (`/stripe-apps`): Introduces Stripe Apps, their capabilities, and how they extend Stripe's functionality.
*   **Getting Started with Stripe Apps** (`/stripe-apps/create-app`): Guides users through building a basic "Hello, world!" app, including setting up the Stripe CLI.
*   **How Stripe Apps Work** (`/stripe-apps/how-stripe-apps-work`): Explains the fundamental architecture and components of Stripe Apps.
*   **Common Use Cases** (`/stripe-apps/common-use-cases`): Outlines typical scenarios for building Stripe Apps, categorized by app type (backend, frontend, full-stack).

### Development and Features

*   **Building a UI** (`/stripe-apps/build-ui`): Details how to create custom user interfaces within the Stripe Dashboard using React and the UI Extensions SDK.
*   **UI Extensions** (`/stripe-apps/how-ui-extensions-work`): Explains the system for rendering custom UIs within Stripe's environment.
*   **Server-Side Logic** (`/stripe-apps/build-backend`): Covers adding backend code for secure integrations, webhooks, and long-running processes.
*   **API Authentication** (`/stripe-apps/api-authentication`): Describes the different methods for authenticating API requests, including Platform Key, OAuth 2.0, and Restricted API Keys.
    *   **OAuth 2.0** (`/stripe-apps/api-authentication/oauth`): Specific guidance on implementing OAuth 2.0.
    *   **Restricted API Key** (`/stripe-apps/api-authentication/rak`): Details on using Restricted API Keys.
*   **Authorization Flows** (`/stripe-apps/pkce-oauth-flow`): Implements PKCE OAuth workflows for enhanced security.
*   **Store Secret Credentials** (`/stripe-apps/store-secrets`): Securely persisting sensitive data like tokens and credentials.
*   **App Settings Page** (`/stripe-apps/app-settings`): Creating a page for users to configure app settings.
*   **Deep Links** (`/stripe-apps/deep-links`): Enabling navigation to specific app pages within the Dashboard.
*   **Install Links** (`/stripe-apps/install-links`): Allowing users to install apps outside the Stripe App Marketplace.
*   **Post-Install Actions** (`/stripe-apps/post-install-actions`): Configuring actions that occur after app installation.
*   **Handling Modes** (`/stripe-apps/handling-modes`): Adapting apps for live mode and sandboxes.
*   **Local Network Access** (`/stripe-apps/enable-local-network-access`): Enabling local network access for app preview.
*   **Sandbox Support** (`/stripe-apps/enable-sandbox-support`): Configuring public apps for sandbox installation.

### UI Components and Design

*   **UI Components** (`/stripe-apps/components`): A reference to all available UI components for building interfaces.
    *   Includes detailed pages for components like `Accordion`, `Badge`, `Button`, `Checkbox`, `DataTable`, `DateField`, `Icon`, `Link`, `Menu`, `Select`, `TextField`, `Toast`, `Tooltip`, and more.
*   **Next Generation UI Components** (`/stripe-apps/next-ui-components`): Early access to updated UI components.
*   **Component Hierarchy Constraints** (`/stripe-apps/component-hierarchy-constraints`): Rules for composing UI components.
*   **Design Your App** (`/stripe-apps/design`): Guidelines and philosophy for designing Stripe Apps.
*   **Style Your App** (`/stripe-apps/style`): Information on styling UI components using design tokens.
*   **Design Patterns** (`/stripe-apps/patterns`): Recommended patterns for consistent and scalable app design.
    *   Covers patterns like `Action buttons`, `Onboarding flow`, `Filter controls`, `Lists`, `Loading`, `Redirects`, `Settings sign in`, `Sign in template`, `Sign out`, `Waiting screens`, and more.

### Migration and Legacy

*   **Legacy Extensions** (`/building-extensions`): Information on the deprecated extensions integration pattern.
*   **Migrate an Extension** (`/stripe-apps/migrate-extension`): Guidance on migrating legacy extensions to Stripe Apps.
*   **Migrate a Plugin** (`/stripe-apps/plugins/decide-migration`): Options for migrating plugins to Stripe Apps or Stripe Connect.
    *   Specific migration guides for OAuth 2.0 (`/stripe-apps/plugins/oauth`) and Restricted API Keys (`/stripe-apps/plugins/rak`).

### Distribution and Management

*   **Distribution Options** (`/stripe-apps/distribution-options`): How to share Stripe Apps with users.
*   **Upload and Install Your App** (`/stripe-apps/upload-install-app`): Steps for making an app available to team members.
*   **Publish Your App** (`/stripe-apps/publish-app`): How to get an app approved for the Stripe App Marketplace.
*   **App Review Requirements** (`/stripe-apps/review-requirements`): Quality standards for apps on the App Marketplace.
*   **Test Your App Externally** (`/stripe-apps/test-app`): Setting up and distributing test versions of an app.
*   **App Analytics** (`/stripe-apps/analytics`): Accessing data on app performance.
*   **Manage Versions and Releases** (`/stripe-apps/versions-and-releases`): Strategies for managing app updates over time.
*   **Promote Your App** (`/stripe-apps/promote-app`): Partnering with Stripe to grow app visibility.

### Reference and Tools

*   **App Manifest Reference** (`/stripe-apps/reference/app-manifest`): Details on the app manifest file.
*   **Stripe Apps CLI Reference** (`/stripe-apps/reference/cli`): Commands for managing Stripe Apps via the command line.
*   **Permissions Reference** (`/stripe-apps/reference/permissions`): Available events and their required permissions.
*   **Extension SDK API Reference** (`/stripe-apps/reference/extensions-sdk-api`): Documentation for the Extension SDK.
*   **Viewports Reference** (`/stripe-apps/reference/viewports`): Available viewports for Stripe Apps.
*   **Route Descriptors** (`/stripe-apps/route-descriptors`): Navigating within the Dashboard using route descriptors.
*   **Sample Apps** (`/stripe-apps/sample-apps`): Working examples of Stripe Apps on GitHub.
*   **UI Extension Developer Tools** (`/stripe-apps/ui-extension-developer-tools`): Tools for type checking, linting, and testing UI extensions.
*   **Upgrade UI Extension SDK** (`/stripe-apps/upgrade-stripes-ui-extension-sdk`): Guidance on upgrading the UI extension SDK.