## Stripe Apps: Building and Managing Integrations

This documentation set provides comprehensive guidance on developing, deploying, and managing 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, design patterns, and deployment strategies.

### Key Areas of Focus:

*   **Getting Started with Stripe Apps:** Learn the fundamentals of building your first Stripe App, including setup and basic app creation.
*   **Core Development Concepts:** Understand how Stripe Apps work, including their architecture, UI extensions, and server-side logic.
*   **API Authentication and Authorization:** Explore different methods for authenticating API requests, including OAuth 2.0 and Restricted API Keys, and how to implement authorization flows.
*   **Building User Interfaces:** Discover how to create custom UIs within the Stripe Dashboard using the UI Extensions SDK and a rich library of UI components.
*   **App Management and Deployment:** Learn how to configure your app's manifest, enable sandbox support, handle different operational modes, distribute your app, and manage versions and releases.
*   **Design and Best Practices:** Follow recommended design patterns and guidelines to create intuitive, consistent, and high-quality user experiences.
*   **Migration from Legacy Extensions:** Understand the process of migrating older extension integrations to the modern Stripe Apps framework.

### Key Topics Covered:

*   **Stripe Apps Overview:** An introduction to the Stripe Apps platform and its capabilities.
*   **Creating and Building Apps:**
    *   Getting started with app development.
    *   Building backend logic.
    *   Developing user interfaces.
    *   Creating front-end, back-end, and full-stack app examples.
*   **API Authentication and Authorization:**
    *   Overview of authentication methods (Platform key, OAuth 2.0, Restricted API Key).
    *   Implementing authorization flows (PKCE OAuth).
*   **UI Extensions and Components:**
    *   How UI extensions work.
    *   A comprehensive library of UI components (e.g., Accordion, Button, Input fields, Charts, Tables).
    *   Next-generation UI components.
    *   Component hierarchy constraints.
*   **App Configuration and Management:**
    *   App manifest reference.
    *   Handling different operational modes (live vs. sandbox).
    *   Enabling local network access for development.
    *   Enabling sandbox support.
    *   App settings pages.
    *   Storing secret credentials.
    *   Managing app versions and releases.
*   **Distribution and Deployment:**
    *   Distribution options (public vs. private).
    *   Publishing to the Stripe App Marketplace.
    *   App review requirements.
    *   Promoting your app.
    *   Uploading and installing apps.
    *   Testing apps externally.
    *   Using install links.
*   **Design Patterns and Guidelines:**
    *   General design patterns for Stripe Apps.
    *   Specific patterns for onboarding, authentication, navigation, state communication, and more.
    *   Full page app development.
    *   Filter controls, lists, loading states, and empty states.
*   **Migration and Legacy:**
    *   Migrating from legacy extensions.
    *   Migrating plugins to Stripe Apps or Stripe Connect.
*   **Developer Tools:**
    *   Stripe Apps CLI reference.
    *   UI extension developer tools.
    *   UI testing utilities.
*   **Key Concepts:**
    *   Deep links for navigation.
    *   Post-install actions and configurations.
    *   Assigning roles in UI extensions.
    *   Viewports for UI placement.
    *   Route descriptors for navigation.
    *   App analytics.
    *   Embedded Stripe Apps.