## Stripe Apps Documentation

This documentation set provides comprehensive guidance on developing, deploying, and managing Stripe Apps. Stripe Apps allow developers to extend Stripe's functionality by building custom user interfaces within the Stripe Dashboard, integrating with third-party services, and automating workflows.

### Core Concepts & Getting Started

*   **Stripe Apps Overview** (`/stripe-apps`): An introduction to Stripe Apps, their capabilities, and how to get started.
*   **Getting Started with Stripe Apps** (`/stripe-apps/create-app`): A step-by-step guide to building your first Stripe 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`): Illustrates various scenarios and app types (backend, frontend, full-stack) you can build with Stripe Apps.

### Building Your App

*   **Build a UI** (`/stripe-apps/build-ui`): Learn how to create custom user interfaces within the Stripe Dashboard using React and Stripe's UI Extensions SDK.
*   **How UI Extensions Work** (`/stripe-apps/how-ui-extensions-work`): Delves into the specifics of the UI extensions system, including sandboxing and component usage.
*   **Add Server-Side Logic** (`/stripe-apps/build-backend`): Details how to integrate a self-hosted backend for secure third-party integrations, webhook handling, and long-running processes.
*   **App Settings Page** (`/stripe-apps/app-settings`): Guides you on creating a dedicated settings page for users to configure your app within the Stripe Dashboard.
*   **Store Secret Credentials and Tokens** (`/stripe-apps/store-secrets`): Explains how to securely store sensitive data like API keys and tokens using the Secret Store API.

### Authentication and Authorization

*   **API Authentication Methods** (`/stripe-apps/api-authentication`): An overview of the available authentication methods for your app.
*   **OAuth 2.0** (`/stripe-apps/api-authentication/oauth`): Details how to implement OAuth 2.0 for user authentication and authorization.
*   **Restricted API Key Authentication** (`/stripe-apps/api-authentication/rak`): Explains how to use Restricted API Keys (RAKs) for more secure, permissioned access.
*   **Add Authorization Flows** (`/stripe-apps/pkce-oauth-flow`): Implements PKCE OAuth workflows for secure authorization.

### Deployment and Distribution

*   **Distribution Options** (`/stripe-apps/distribution-options`): Explores the different ways to share your Stripe Apps with users.
*   **Upload and Install Your Stripe App** (`/stripe-apps/upload-install-app`): Guides you through uploading and installing your app for team members.
*   **How to Publish an App to the Stripe App Marketplace** (`/stripe-apps/publish-app`): Details the process of making your app publicly available on the Stripe App Marketplace.
*   **Stripe Apps Quality Requirements** (`/stripe-apps/review-requirements`): Outlines the quality standards your app must meet for marketplace review.
*   **Test Your App Externally** (`/stripe-apps/test-app`): Learn how to set up external testing for your app before publication.
*   **Manage Your App's Versions and Releases** (`/stripe-apps/versions-and-releases`): Understand app versioning and release management.

### Migration

*   **Migrate an Extension to Stripe Apps** (`/stripe-apps/migrate-extension`): Explains why and how to migrate legacy extensions to the new Stripe Apps platform.
*   **Migrate a Plugin to Stripe Apps or Stripe Connect** (`/stripe-apps/plugins/decide-migration`): Helps you decide on the best migration path for your existing plugins.
*   **Migrate a Plugin to an OAuth 2.0 App** (`/stripe-apps/plugins/oauth`): Guides you through migrating to OAuth 2.0 authentication.
*   **Migrate a Plugin to a RAK App** (`/stripe-apps/plugins/rak`): Details the process of migrating to Restricted API Key authentication.

### UI Components and Design

*   **UI Components** (`/stripe-apps/components`): A reference to all available UI components for building your app's interface.
*   **Next Generation UI Components** (`/stripe-apps/next-ui-components`): Provides early access to upcoming UI component updates.
*   **Component Hierarchy Constraints** (`/stripe-apps/component-hierarchy-constraints`): Understand the rules for composing UI components.
*   **Style Your App** (`/stripe-apps/style`): Learn how to style your app using provided design tokens for consistency.
*   **Design Your App** (`/stripe-apps/design`): Get started with design tools, guidelines, and philosophy for Stripe Apps.
*   **Design Patterns for Stripe Apps** (`/stripe-apps/patterns`): Follow recommended patterns for consistent and scalable app design.
    *   **Action Buttons** (`/stripe-apps/patterns/action-buttons`)
    *   **Additional Context** (`/stripe-apps/patterns/additional-context`)
    *   **Back Link** (`/stripe-apps/patterns/back-link`)
    *   **Communicating State** (`/stripe-apps/patterns/communicating-state`)
    *   **Demo Content** (`/stripe-apps/patterns/demo`)
    *   **Empty State** (`/stripe-apps/patterns/empty-state`)
    *   **Filter Controls** (`/stripe-apps/patterns/filter-controls`)
    *   **Full Page Apps** (`/stripe-apps/patterns/full-page-apps`)
    *   **Lists** (`/stripe-apps/patterns/lists`)
    *   **Loading** (`/stripe-apps/patterns/loading`)
    *   **Onboarding** (`/stripe-apps/onboarding` and `/stripe-apps/patterns/onboarding-experience`)
    *   **Progress Stepping** (`/stripe-apps/patterns/progress-stepping`)
    *   **Redirects** (`/stripe-apps/patterns/redirects`)
    *   **Settings Sign In** (`/stripe-apps/patterns/settings-signin`)
    *   **Sign In Template** (`/stripe-apps/patterns/sign-in`)
    *   **Sign Out** (`/stripe-apps/patterns/sign-out`)
    *   **Waiting Screens** (`/stripe-apps/patterns/waiting-screens`)

### Advanced Features & Reference

*   **App Manifest Reference** (`/stripe-apps/reference/app-manifest`): Detailed documentation for the `stripe-app.json` file.
*   **Stripe Apps CLI Reference** (`/stripe-apps/reference/cli`): Commands and usage for the Stripe Apps CLI.
*   **Permissions Reference** (`/stripe-apps/reference/permissions`): Information on 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`): Details on available viewports for your UI extensions.
*   **Navigate within the Dashboard using Route Descriptors** (`/stripe-apps/route-descriptors`): Enables soft, context-preserving navigation.
*   **Add Deep Links** (`/stripe-apps/deep-links`): Create deep links to navigate users to your Stripe App.
*   **Enable Local Network Access** (`/stripe-apps/enable-local-network-access`): Configure local network access for app preview.
*   **Enable Sandbox Support** (`/stripe-apps/enable-sandbox-support`): Enable your public app for sandbox installation.
*   **Handle Different Modes** (`/stripe-apps/handling-modes`): Adapt your app to handle live mode and sandboxes.
*   **Embed Third-Party Stripe Apps** (`/stripe-apps/embedded-apps`): Integrate third-party Stripe Apps using embedded components.
*   **Marketing Software Integrations** (`/stripe-apps/embedded-apps/marketing-integrations`): Embed marketing software integrations like Mailchimp.
*   **App Analytics** (`/stripe-apps/analytics`): Access analytics to understand app performance.
*   **UI Testing** (`/stripe-apps/ui-testing`): Tools and helpers for testing your app's UI.
*   **UI Extension Developer Tools** (`/stripe-apps/ui-extension-developer-tools`): Utilize bundled tools for type checking, linting, and testing.
*   **Upgrade Stripe's UI Extension SDK** (`/stripe-apps/upgrade-stripes-ui-extension-sdk`): Guide to upgrading to the latest SDK version.
*   **Using Roles in UI Extensions** (`/stripe-apps/using-roles-in-ui-extensions`): Tailor functionality based on user roles.
*   **Enable Post-Install Actions and Configurations** (`/stripe-apps/post-install-actions`): Support additional configurations after app installation.
*   **Sample Apps** (`/stripe-apps/sample-apps`): Explore working examples to use as a starting point.

### Specific Component Documentation

*   **Accordion** (`/stripe-apps/components/accordion`)
*   **Badge** (`/stripe-apps/components/badge`)
*   **Banner** (`/stripe-apps/components/banner`)
*   **BarChart** (`/stripe-apps/components/barchart`)
*   **Box** (`/stripe-apps/components/box`)
*   **Button** (`/stripe-apps/components/button`)
*   **ButtonGroup** (`/stripe-apps/components/buttongroup`)
*   **Checkbox** (`/stripe-apps/components/checkbox`)
*   **Chip** (`/stripe-apps/components/chip`)
*   **ContextView** (`/stripe-apps/components/contextview`)
*   **DataTable** (`/stripe-apps/components/datatable`)
*   **DateField** (`/stripe-apps/components/datefield`)
*   **DetailPageModule** (`/stripe-apps/components/detailpagemodule`)
*   **DetailPagePropertyList** (`/stripe-apps/components/detailpagepropertylist`)
*   **DetailPageTable** (`/stripe-apps/components/detailpagetable`)
*   **Divider** (`/stripe-apps/components/divider`)
*   **FocusView** (`/stripe-apps/components/focusview`)
*   **FormFieldGroup** (`/stripe-apps/components/formfieldgroup`)
*   **FullPageTabs** (`/stripe-apps/components/fullpagetabs`)
*   **FullPageView** (`/stripe-apps/components/fullpageview`)
*   **Icon** (`/stripe-apps/components/icon`)
*   **Img** (`/stripe-apps/components/img`)
*   **Inline** (`/stripe-apps/components/inline`)
*   **LineChart** (`/stripe-apps/components/linechart`)
*   **Link** (`/stripe-apps/components/link`)
*   **List** (`/stripe-apps/components/list`)
*   **Menu** (`/stripe-apps/components/menu`)
*   **OnboardingView** (`/stripe-apps/components/onboardingview`)
*   **OverviewPage** (`/stripe-apps/components/overviewpage`)
*   **PropertyList** (`/stripe-apps/components/propertylist`)
*   **Radio** (`/stripe-apps/components/radio`)
*   **SearchField** (`/stripe-apps/components/searchfield`)
*   **Select** (`/stripe-apps/components/select`)
*   **SettingsView** (`/stripe-apps/components/settingsview`)
*   **SignInView** (`/stripe-apps/components/signinview`)
*   **Sparkline** (`/stripe-apps/components/sparkline`)
*   **Spinner** (`/stripe-apps/components/spinner`)
*   **Switch** (`/stripe-apps/components/switch`)
*   **Table** (`/stripe-apps/components/table`)
*   **Tabs** (`/stripe-apps/components/tabs`)
*   **TaskList** (`/stripe-apps/components/tasklist`)
*   **TextArea** (`/stripe-apps/components/textarea`)
*   **TextField** (`/stripe-apps/components/textfield`)
*   **Toast** (`/stripe-apps/components/toast`)
*   **Tooltip** (`/stripe-apps/components/tooltip`)