## Stripe Apps Documentation

This documentation set provides comprehensive guidance on developing and managing Stripe Apps. It covers everything from initial setup and core concepts to advanced features, UI components, and best practices for design and distribution.

### Core Concepts and Getting Started

*   **Stripe Apps Overview (`/stripe-apps`)**: Introduces Stripe Apps, their capabilities, and how to get started with app development.
*   **Getting Started (`/stripe-apps/create-app`)**: Guides users through building a basic "Hello, world!" Stripe app.
*   **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 into back-end, front-end, and full-stack applications.

### Building Your App

*   **Build a UI (`/stripe-apps/build-ui`)**: Details how to create custom user interfaces within the Stripe Dashboard using React and the UI Extensions SDK.
*   **How UI Extensions Work (`/stripe-apps/how-ui-extensions-work`)**: Explains the system for rendering custom UIs within Stripe's environment.
*   **Add Server-Side Logic (`/stripe-apps/build-backend`)**: Covers how to integrate self-hosted backend services for enhanced app functionality.
*   **App Settings Page (`/stripe-apps/app-settings`)**: Guides on creating a page for users to configure their app settings.
*   **Store Secret Credentials (`/stripe-apps/store-secrets`)**: Explains how to securely store sensitive data like API keys and tokens using the Secret Store API.
*   **Enable Sandbox Support (`/stripe-apps/enable-sandbox-support`)**: Details how to enable your public app for testing in Stripe's sandbox environment.
*   **Enable Local Network Access (`/stripe-apps/enable-local-network-access`)**: Explains how to grant permission for your app to access local network resources during development.

### API and Authentication

*   **API Authentication Methods (`/stripe-apps/api-authentication`)**: Presents the different methods for authenticating API requests.
*   **OAuth 2.0 (`/stripe-apps/api-authentication/oauth`)**: Provides a detailed guide on implementing OAuth 2.0 for authentication.
*   **Restricted API Key (`/stripe-apps/api-authentication/rak`)**: Explains how to use Restricted API Keys (RAKs) for secure authentication.
*   **Authorization Flows (`/stripe-apps/pkce-oauth-flow`)**: Covers implementing PKCE OAuth workflows.

### UI Components and Design

*   **UI Components (`/stripe-apps/components`)**: A reference for all available UI components for building your app's interface.
    *   Includes detailed documentation for individual components like `Accordion`, `Badge`, `Banner`, `BarChart`, `Box`, `Button`, `ButtonGroup`, `Checkbox`, `Chip`, `ContextView`, `DateField`, `DetailPageModule`, `DetailPagePropertyList`, `DetailPageTable`, `Divider`, `FocusView`, `FormFieldGroup`, `Icon`, `Img`, `Inline`, `LineChart`, `Link`, `List`, `Menu`, `OnboardingView`, `PropertyList`, `Radio`, `SearchField`, `Select`, `SettingsView`, `SignInView`, `Sparkline`, `Spinner`, `Switch`, `Table`, `Tabs`, `TaskList`, `TextArea`, `TextField`, `Toast`, and `Tooltip`.
*   **Next Generation UI Components (`/stripe-apps/next-ui-components`)**: Information on using the latest UI components.
*   **Component Hierarchy Constraints (`/stripe-apps/component-hierarchy-constraints`)**: Explains rules for composing UI components.
*   **Design Your App (`/stripe-apps/design`)**: Provides guidelines and philosophy for designing your Stripe App.
*   **Style Your App (`/stripe-apps/style`)**: Details how to style UI components using provided design tokens.
*   **Design Patterns (`/stripe-apps/patterns`)**: Introduces recommended patterns for app design.
    *   Includes specific patterns for `Action Buttons`, `Additional Context`, `Back Link`, `Communicating State`, `Demo Content`, `Empty State`, `Filter Controls`, `Full Page Apps`, `Lists`, `Loading`, `Onboarding Flow`, `Progress Stepping`, `Redirects`, `Settings Sign In`, `Sign In Template`, `Sign Out`, and `Waiting Screens`.
*   **UI Testing (`/stripe-apps/ui-testing`)**: Guides on testing your app's UI.
*   **UI Extension Developer Tools (`/stripe-apps/ui-extension-developer-tools`)**: Details the tools available for developing UI extensions.

### Distribution and Management

*   **Distribution Options (`/stripe-apps/distribution-options`)**: Explains how to share your Stripe Apps with users.
*   **Upload and Install Your App (`/stripe-apps/upload-install-app`)**: Guides on uploading and installing your app for team members.
*   **Manage App Versions and Releases (`/stripe-apps/versions-and-releases`)**: Covers app versioning and release management.
*   **Test Your App Externally (`/stripe-apps/test-app`)**: Details how to set up external testing for your app.
*   **Publish Your App (`/stripe-apps/publish-app`)**: Guides on publishing your app to the Stripe App Marketplace.
*   **Stripe Apps Quality Requirements (`/stripe-apps/review-requirements`)**: Outlines the quality standards for apps on the App Marketplace.
*   **Promote Your App (`/stripe-apps/promote-app`)**: Information on partnering with Stripe to grow your app.

### Migration and Advanced Topics

*   **Migrate an Extension (`/stripe-apps/migrate-extension`)**: Explains why and how to migrate legacy extensions to Stripe Apps.
*   **Migrate a Plugin (`/stripe-apps/plugins/decide-migration`)**: Guides on migrating plugins to Stripe Apps or Stripe Connect.
    *   Includes specific guides for migrating to OAuth 2.0 (`/stripe-apps/plugins/oauth`) and RAK apps (`/stripe-apps/plugins/rak`).
*   **Handle Different Modes (`/stripe-apps/handling-modes`)**: Details how to adapt your app for live mode and sandboxes.
*   **Add Deep Links (`/stripe-apps/deep-links`)**: Covers creating deep links to navigate users within your app.
*   **Using Install Links (`/stripe-apps/install-links`)**: Explains how to allow users to install your app outside the App Marketplace.
*   **Post-Install Actions (`/stripe-apps/post-install-actions`)**: Guides on enabling configurations that occur after app installation.
*   **Using Roles in UI Extensions (`/stripe-apps/using-roles-in-ui-extensions`)**: Details how to tailor functionality based on user roles.
*   **App Analytics (`/stripe-apps/analytics`)**: Explains how to access and understand app performance data.
*   **Embedded Stripe Apps (`/stripe-apps/embedded-apps`)**: Integration guide for embedding Stripe Apps into third-party applications.
    *   Includes a specific guide for marketing software integrations (`/stripe-apps/embedded-apps/marketing-integrations`).

### Reference

*   **App Manifest Reference (`/stripe-apps/reference/app-manifest`)**: Documentation for the app manifest file (`stripe-app.json`).
*   **Stripe Apps CLI Reference (`/stripe-apps/reference/cli`)**: Guides on using the Stripe Apps command-line interface.
*   **Permissions Reference (`/stripe-apps/reference/permissions`)**: Lists available events and their required permissions.
*   **Extension SDK API Reference (`/stripe-apps/reference/extensions-sdk-api`)**: Documentation for the Extension SDK API.
*   **Viewports Reference (`/stripe-apps/reference/viewports`)**: Lists available viewports for Stripe Apps.
*   **Route Descriptors (`/stripe-apps/route-descriptors`)**: Explains how to navigate within the Dashboard using route descriptors.

### Examples and Samples

*   **Sample Apps (`/stripe-apps/sample-apps`)**: Links to sample apps on GitHub to use as starting points.
*   **Back-end App Example (`/stripe-apps/back-end-app-example`)**: A guide to building a back-end-only Stripe app.
*   **Front-end App Example (`/stripe-apps/front-end-app-example`)**: A guide to building a Stripe app with a user interface.
*   **Full-stack App Example (`/stripe-apps/full-stack-app-example`)**: A guide to building a Stripe app with both UI and back-end functionality.

### Legacy Information

*   **Legacy Extensions (`/building-extensions`)**: Information about the deprecated extensions integration pattern and historical reference.