## Documentation for Stripe Apps Development

This documentation set provides comprehensive guidance for developers looking to build and integrate applications with Stripe. It covers the entire lifecycle of Stripe App development, from initial setup and core concepts to advanced features, UI components, design patterns, and deployment.

### Core Concepts and Getting Started

*   **Stripe Apps Overview (`/stripe-apps`)**: Introduces Stripe Apps, their capabilities, and how they extend Stripe's platform. It guides users on how to get started with app development.
*   **Getting Started with Stripe Apps (`/stripe-apps/create-app`)**: A foundational guide to building your first Stripe App, covering the basics of development, previewing, and updating.
*   **How Stripe Apps Work (`/stripe-apps/how-stripe-apps-work`)**: Explains the fundamental architecture and components of Stripe Apps, including frontend and backend interactions.
*   **Common Use Cases (`/stripe-apps/common-use-cases`)**: Illustrates various scenarios and types of apps that can be built with Stripe Apps (backend, frontend, full-stack).

### Building Your Stripe App

*   **Build an App**: This section likely encompasses the overall process of creating an app.
*   **Store Secrets (`/stripe-apps/store-secrets`)**: Details how to securely store sensitive credentials and tokens using the Secret Store API.
*   **API Authentication Methods (`/stripe-apps/api-authentication`)**: Explains the different ways to authenticate requests to the Stripe API, including Platform key, OAuth 2.0, and Restricted API keys.
    *   **OAuth 2.0 (`/stripe-apps/api-authentication/oauth`)**: A deep dive into using OAuth 2.0 for authentication.
    *   **Restricted API Key Authentication (`/stripe-apps/api-authentication/rak`)**: Information on using Restricted API Keys (RAKs).
*   **Authorization Flows (`/stripe-apps/pkce-oauth-flow`)**: Guides on implementing authorization flows, specifically PKCE OAuth workflows.
*   **Server-side Logic (`/stripe-apps/build-backend`)**: Covers how to add backend code to validate and process user actions and data.
*   **Build a UI (`/stripe-apps/build-ui`)**: Instructions on creating 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.
    *   **Next generation UI components (`/stripe-apps/next-ui-components`)**: Introduces upcoming UI components.
    *   **Component hierarchy constraints (`/stripe-apps/component-hierarchy-constraints`)**: Details rules for composing UI components.
    *   **UI testing (`/stripe-apps/ui-testing`)**: Guidance on testing your app's user interface.
    *   **UI extension developer tools (`/stripe-apps/ui-extension-developer-tools`)**: Information on bundled tools for type checking, linting, and testing.
    *   **Upgrade Stripe's UI extension SDK (`/stripe-apps/upgrade-stripes-ui-extension-sdk`)**: Instructions for upgrading the UI extension SDK.
*   **UI Components (`/stripe-apps/components`)**: A comprehensive reference for all available UI components.
    *   **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`)**
*   **App settings page (`/stripe-apps/app-settings`)**: How to create a settings page for your app.

### App Distribution and Management

*   **Distribution options (`/stripe-apps/distribution-options`)**: Explains how to share your Stripe Apps with users.
*   **Upload and install your Stripe App (`/stripe-apps/upload-install-app`)**: Guides on making your app available to team members.
*   **Test your app externally (`/stripe-apps/test-app`)**: How to set up and distribute test versions of your app.
*   **Publish your app (`/stripe-apps/publish-app`)**: Steps for publishing your app to the Stripe App Marketplace.
*   **Stripe Apps quality requirements (`/stripe-apps/review-requirements`)**: Details on the quality standards for apps on the marketplace.
*   **Manage your app's versions and releases (`/stripe-apps/versions-and-releases`)**: Information on app versioning and managing changes.
*   **Promote your app (`/stripe-apps/promote-app`)**: Guidance on partnering with Stripe to grow your app.

### Advanced Features and Integrations

*   **Embedded Stripe Apps integration guide (`/stripe-apps/embedded-apps`)**: How to use embedded components for Stripe Apps.
    *   **Marketing software integrations (`/stripe-apps/embedded-apps/marketing-integrations`)**: Specifics on integrating marketing software.
*   **Enable local network access (`/stripe-apps/enable-local-network-access`)**: How to enable local network access for app preview.
*   **Enable sandbox support for your public app (`/stripe-apps/enable-sandbox-support`)**: How to enable sandbox installation for your app.
*   **Handle different modes (`/stripe-apps/handling-modes`)**: Adapting your app for live mode and sandboxes.
*   **Add deep links (`/stripe-apps/deep-links`)**: Creating deep links to navigate users within your app.
*   **Navigate within the Dashboard using route descriptors (`/stripe-apps/route-descriptors`)**: Implementing soft, context-preserving navigation.
*   **Using install links (`/stripe-apps/install-links`)**: Allowing users to install apps outside the Stripe App Marketplace.
*   **Enable post-install actions and configurations (`/stripe-apps/post-install-actions`)**: Supporting configurations after app installation.
*   **Using roles in UI extensions (`/stripe-apps/using-roles-in-ui-extensions`)**: Tailoring functionality based on user roles.

### Migration and Legacy Information

*   **Legacy extensions (`/building-extensions`)**: Information about the deprecated extensions integration pattern.
*   **Migrate an extension to Stripe Apps (`/stripe-apps/migrate-extension`)**: Guidance on migrating from legacy extensions to Stripe Apps.
*   **Migrate a plugin to Stripe Apps or Stripe Connect (`/stripe-apps/plugins/decide-migration`)**: Options for migrating plugins.
    *   **Migrate a plugin to an OAuth 2.0 app (`/stripe-apps/plugins/oauth`)**
    *   **Migrate a plugin to a RAK app (`/stripe-apps/plugins/rak`)**

### Reference and Design

*   **App manifest reference (`/stripe-apps/reference/app-manifest`)**: Details on the app manifest file.
*   **Stripe Apps CLI reference (`/stripe-apps/reference/cli`)**: Information on using the Stripe Apps command-line interface.
*   **Permissions reference (`/stripe-apps/reference/permissions`)**: A list of 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`)**: Available viewports for Stripe Apps.
*   **Design patterns for Stripe Apps (`/stripe-apps/patterns`)**: Recommended design patterns for building consistent and scalable apps.
    *   **Full page apps (`/stripe-apps/patterns/full-page-apps`)**
    *   **Action buttons (`/stripe-apps/patterns/action-buttons`)**
    *   **Onboarding flow (`/stripe-apps/patterns/onboarding-experience`)**
    *   **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`)**
    *   **Lists (`/stripe-apps/patterns/lists`)**
    *   **Loading (`/stripe-apps/patterns/loading`)**
    *   **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`)**
*   **Style your app (`/stripe-apps/style`)**: How to style UI components using design tokens.
*   **Design your app (`/stripe-apps/design`)**: Guidelines and philosophy for designing Stripe Apps.
*   **Sample apps (`/stripe-apps/sample-apps`)**: Working examples of Stripe Apps.
*   **Onboarding (`/stripe-apps/onboarding`)**: Guiding users through sign-in and setup.

### Development and Testing

*   **Enable sandbox support for your public app (`/stripe-apps/enable-sandbox-support`)**: Configuring sandbox installation.
*   **Handle different modes (`/stripe-apps/handling-modes`)**: Adapting to live and sandbox environments.
*   **Back-end app example (`/stripe-apps/back-end-app-example`)**: Example of a backend-only app.
*   **Front-end app example (`/stripe-apps/front-end-app-example`)**: Example of a frontend-only app.
*   **Full-stack app example (`/stripe-apps/full-stack-app-example`)**: Example of a full-stack app.