## Stripe Apps Documentation

This documentation group provides comprehensive guidance on developing and managing Stripe Apps. It covers everything from initial setup and API authentication to UI development, distribution, and advanced patterns.

### Core Concepts

*   **Stripe Apps Overview (`/stripe-apps`)**: Introduces Stripe Apps, their capabilities, and how to get started.
*   **How Stripe Apps Work (`/stripe-apps/how-stripe-apps-work`)**: Explains the fundamental architecture and components of Stripe Apps.
*   **Getting Started (`/stripe-apps/create-app`)**: Guides users through building their first Stripe App.

### Development

*   **Building UI (`/stripe-apps/build-ui`)**: Covers the process of creating custom user interfaces within the Stripe Dashboard using React and the UI Extensions SDK.
    *   **UI Extensions (`/stripe-apps/how-ui-extensions-work`)**: Details how UI extensions function within the Stripe Dashboard.
    *   **UI Components (`/stripe-apps/components`)**: Provides a reference for all available UI components, including:
        *   Layout: `Box`, `Inline`, `FullPageView`, `OverviewPage`
        *   Navigation: `Link`, `Tabs`, `Menu`, `Back link`
        *   Input Controls: `Button`, `ButtonGroup`, `Checkbox`, `DateField`, `Radio`, `Select`, `Switch`, `TextField`, `TextArea`, `SearchField`
        *   Information Display: `Accordion`, `Badge`, `Banner`, `Chip`, `Divider`, `Icon`, `Img`, `List`, `Sparkline`, `Spinner`, `Toast`, `Tooltip`
        *   Data Visualization: `BarChart`, `LineChart`
        *   Specialized Views: `ContextView`, `FocusView`, `OnboardingView`, `SettingsView`, `SignInView`
        *   Data Structures: `DataTable`, `DetailPageModule`, `DetailPagePropertyList`, `DetailPageTable`, `PropertyList`, `TaskList`
        *   Form Elements: `FormFieldGroup`
    *   **Next Generation UI Components (`/stripe-apps/next-ui-components`)**: Introduces upcoming UI components.
    *   **Component Hierarchy Constraints (`/stripe-apps/component-hierarchy-constraints`)**: Explains rules for composing UI components.
    *   **UI Testing (`/stripe-apps/ui-testing`)**: Details how to test your app's UI.
    *   **Styling (`/stripe-apps/style`)**: Guides on styling your app to match Stripe's design.
    *   **Design (`/stripe-apps/design`)**: Provides design guidelines and philosophy.
*   **Server-Side Logic (`/stripe-apps/build-backend`)**: Explains how to add backend code for processing and integrations.
*   **API Authentication (`/stripe-apps/api-authentication`)**: Describes methods for authenticating API requests.
    *   **OAuth 2.0 (`/stripe-apps/api-authentication/oauth`)**: Details the OAuth 2.0 flow.
    *   **Restricted API Keys (`/stripe-apps/api-authentication/rak`)**: Explains how to use restricted API keys.
*   **Authorization Flows (`/stripe-apps/pkce-oauth-flow`)**: Implements PKCE OAuth workflows.
*   **Handling Modes (`/stripe-apps/handling-modes`)**: Adapting your app for live mode and sandboxes.
*   **Sandbox Support (`/stripe-apps/enable-sandbox-support`)**: Enabling sandbox installation for public apps.
*   **Local Network Access (`/stripe-apps/enable-local-network-access`)**: Enabling local network access for app preview.
*   **Storing Secrets (`/stripe-apps/store-secrets`)**: Securely storing credentials and tokens.
*   **App Settings Page (`/stripe-apps/app-settings`)**: Creating a page for users to configure app settings.
*   **Deep Links (`/stripe-apps/deep-links`)**: Creating deep links for navigation within the Dashboard.
*   **Route Descriptors (`/stripe-apps/route-descriptors`)**: Navigating within the Dashboard using route descriptors.
*   **Post-Install Actions (`/stripe-apps/post-install-actions`)**: Configuring actions after app installation.
*   **Developer Tools (`/stripe-apps/ui-extension-developer-tools`)**: Utilizing bundled tools for development.

### App Types and Examples

*   **Common Use Cases (`/stripe-apps/common-use-cases`)**: Illustrates typical scenarios for Stripe Apps.
*   **Back-end App Example (`/stripe-apps/back-end-app-example`)**: Guide for building a backend-only app.
*   **Front-end App Example (`/stripe-apps/front-end-app-example`)**: Guide for building a frontend-only app.
*   **Full-Stack App Example (`/stripe-apps/full-stack-app-example`)**: Guide for building apps with both UI and backend.
*   **Sample Apps (`/stripe-apps/sample-apps`)**: Links to example applications on GitHub.

### Migration

*   **Migrating Extensions (`/stripe-apps/migrate-extension`)**: Explains why and how to migrate legacy extensions to Stripe Apps.
*   **Migrate a Plugin (`/stripe-apps/plugins/decide-migration`)**: Decision guide for migrating plugins.
    *   **Migrate to OAuth 2.0 (`/stripe-apps/plugins/oauth`)**: Guide for migrating to OAuth 2.0 apps.
    *   **Migrate to RAK App (`/stripe-apps/plugins/rak`)**: Guide for migrating to RAK apps.

### Distribution and Publishing

*   **Distribution Options (`/stripe-apps/distribution-options`)**: Overview of how to share your apps.
*   **Upload and Install (`/stripe-apps/upload-install-app`)**: Steps to upload and install your app.
*   **Publishing (`/stripe-apps/publish-app`)**: Guide to publishing on the Stripe App Marketplace.
*   **App Review Requirements (`/stripe-apps/review-requirements`)**: Quality requirements for app review.
*   **Testing (`/stripe-apps/test-app`)**: Setting up external tests for your app.
*   **Promoting Your App (`/stripe-apps/promote-app`)**: Partnering with Stripe for app growth.
*   **Install Links (`/stripe-apps/install-links`)**: Allowing users to install apps outside the marketplace.

### Reference

*   **App Manifest Reference (`/stripe-apps/reference/app-manifest`)**: Details of the app manifest file.
*   **Stripe Apps CLI Reference (`/stripe-apps/reference/cli`)**: Commands for managing Stripe Apps via the CLI.
*   **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 UI extensions.

### Design Patterns

*   **Design Patterns Overview (`/stripe-apps/patterns`)**: General principles for app design.
*   **Full Page Apps (`/stripe-apps/patterns/full-page-apps`)**: Building complete dashboard pages.
*   **Action Buttons (`/stripe-apps/patterns/action-buttons`)**: Placement and usage of action buttons.
*   **Onboarding Flow (`/stripe-apps/patterns/onboarding-experience`)**: Designing effective onboarding experiences.
*   **Additional Context (`/stripe-apps/patterns/additional-context`)**: Providing context during onboarding.
*   **Back Link (`/stripe-apps/patterns/back-link`)**: Implementing navigation back to previous pages.
*   **Communicating State (`/stripe-apps/patterns/communicating-state`)**: Informing users about app status.
*   **Demo Content (`/stripe-apps/patterns/demo`)**: Tips for showcasing app functionality.
*   **Empty State (`/stripe-apps/patterns/empty-state`)**: Handling scenarios with no data.
*   **Filter Controls (`/stripe-apps/patterns/filter-controls`)**: Using chips for filtering.
*   **Lists (`/stripe-apps/patterns/lists`)**: Displaying collections of information.
*   **Loading (`/stripe-apps/patterns/loading`)**: Indicating data loading states.
*   **Progress Stepping (`/stripe-apps/patterns/progress-stepping`)**: Guiding users through multi-step tasks.
*   **Redirects (`/stripe-apps/patterns/redirects`)**: Creating clear redirects for users.
*   **Settings Sign In (`/stripe-apps/patterns/settings-signin`)**: Onboarding users via a settings page.
*   **Sign In Template (`/stripe-apps/patterns/sign-in`)**: Using the `SignInView` component.
*   **Sign Out (`/stripe-apps/patterns/sign-out`)**: Implementing user sign-out functionality.
*   **Waiting Screens (`/stripe-apps/patterns/waiting-screens`)**: Informing users about wait times.

### Legacy Information

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