## Building and Managing Stripe Apps

This documentation suite covers the development lifecycle of Stripe Apps, from initial setup and core concepts to advanced features, UI design, and deployment. It provides comprehensive guidance for developers looking to extend Stripe's functionality or integrate third-party services.

### Core Concepts and Getting Started

*   **Stripe Apps Overview** (`/stripe-apps`): An introduction to Stripe Apps, their capabilities, and how they extend Stripe's platform.
*   **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 for building Stripe Apps, categorized by app type (backend, frontend, full-stack).

### Development and Customization

*   **Build a UI** (`/stripe-apps/build-ui`): Learn 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`): Details the system for rendering custom UIs within Stripe's environment.
*   **UI Components** (`/stripe-apps/components`): A reference for all available UI components for building your app's interface, including:
    *   Layout & Structure: `Accordion`, `Box`, `ButtonGroup`, `ContextView`, `Divider`, `FocusView`, `FormFieldGroup`, `FullPageTabs`, `FullPageView`, `Inline`, `Link`, `List`, `Menu`, `OnboardingView`, `OverviewPage`, `PropertyList`, `Select`, `SettingsView`, `SignInView`, `Tabs`, `TaskList`, `TextArea`, `TextField`, `Tooltip`.
    *   Data Visualization: `BarChart`, `LineChart`, `Sparkline`.
    *   Status & Feedback: `Badge`, `Banner`, `Spinner`, `Toast`.
    *   Input Controls: `Checkbox`, `DateField`, `Radio`, `Switch`.
    *   Utility: `Chip`, `Icon`, `Img`, `Table`, `DataTable`, `DetailPageModule`, `DetailPagePropertylist`, `DetailPageTable`.
*   **Next Generation UI Components** (`/stripe-apps/next-ui-components`): Access to early versions of updated UI components.
*   **Add Server-Side Logic** (`/stripe-apps/build-backend`): Integrate secure backend code for third-party systems, webhooks, and long-running processes.
*   **App Settings Page** (`/stripe-apps/app-settings`): Create a page for users to configure their app settings within the Stripe Dashboard.
*   **Store Secret Credentials and Tokens** (`/stripe-apps/store-secrets`): Securely persist sensitive data like API keys and tokens using the Secret Store API.
*   **Component Hierarchy Constraints** (`/stripe-apps/component-hierarchy-constraints`): Understand the rules for composing UI components to ensure predictable rendering.
*   **Style Your App** (`/stripe-apps/style`): Learn how to style your app using provided design tokens for visual consistency.
*   **Design Your App** (`/stripe-apps/design`): Guidelines and philosophy for designing your Stripe App, including branding and custom styling.
*   **UI Testing** (`/stripe-apps/ui-testing`): Tools and utilities for testing your app's user interface.
*   **UI Extension Developer Tools** (`/stripe-apps/ui-extension-developer-tools`): Utilize bundled tools for type checking, linting, and testing your UI extension code.
*   **Upgrade Stripe's UI Extension SDK** (`/stripe-apps/upgrade-stripes-ui-extension-sdk`): Guidance on updating your app to the latest SDK versions and managing breaking changes.

### Authentication and Authorization

*   **API Authentication Methods** (`/stripe-apps/api-authentication`): Overview of available authentication methods for your app.
*   **OAuth 2.0** (`/stripe-apps/api-authentication/oauth`): Implement industry-standard OAuth 2.0 for user authentication.
*   **Restricted API Key Authentication** (`/stripe-apps/api-authentication/rak`): Utilize restricted API keys for more secure and permissioned access.
*   **Add Authorization Flows** (`/stripe-apps/pkce-oauth-flow`): Implement PKCE OAuth workflows for secure authorization.

### App Management and Distribution

*   **App Manifest Reference** (`/stripe-apps/reference/app-manifest`): Detailed documentation for the `stripe-app.json` manifest file.
*   **Stripe Apps CLI Reference** (`/stripe-apps/reference/cli`): Commands and usage for the Stripe Apps command-line interface.
*   **Permissions Reference** (`/stripe-apps/reference/permissions`): Information on available events and their required permissions for your app.
*   **Extension SDK API Reference** (`/stripe-apps/reference/extensions-sdk-api`): Documentation for the Extension SDK API, including context props and utility functions.
*   **Upload and Install Your Stripe App** (`/stripe-apps/upload-install-app`): Steps to upload and install your app for team members.
*   **Distribution Options** (`/stripe-apps/distribution-options`): Learn how to make your app publicly available or share it privately.
*   **How to Publish an App to the Stripe App Marketplace** (`/stripe-apps/publish-app`): Guide to getting your app approved for the Stripe App Marketplace.
*   **Stripe Apps Quality Requirements** (`/stripe-apps/review-requirements`): Understand the qualitative requirements for app review.
*   **Test Your App Externally** (`/stripe-apps/test-app`): Set up and distribute test versions of your app before publication.
*   **Manage Your App's Versions and Releases** (`/stripe-apps/versions-and-releases`): Strategies for managing app updates and changes over time.
*   **Enable Sandbox Support** (`/stripe-apps/enable-sandbox-support`): Configure your public app for sandbox installations for testing.
*   **Handle Different Modes** (`/stripe-apps/handling-modes`): Adapt your app to work seamlessly in both live mode and sandboxes.
*   **Enable Local Network Access** (`/stripe-apps/enable-local-network-access`): Configure local network access for app previewing.

### Migration and Legacy

*   **Migrate an Extension to Stripe Apps** (`/stripe-apps/migrate-extension`): Understand 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`): Explore your options for migrating plugins.
*   **Migrate a Plugin to an OAuth 2.0 App** (`/stripe-apps/plugins/oauth`): Specific guidance for migrating to OAuth 2.0.
*   **Migrate a Plugin to a RAK App** (`/stripe-apps/plugins/rak`): Specific guidance for migrating to Restricted API Keys (RAKs).
*   **Legacy Extensions** (`/building-extensions`): Information about the deprecated extensions integration pattern.

### Navigation and User Experience

*   **Onboarding** (`/stripe-apps/onboarding`): Guide users through your app's sign-in and initial setup.
*   **Add Deep Links** (`/stripe-apps/deep-links`): Create deep links to navigate users directly to your Stripe App within the Dashboard.
*   **Navigate within the Dashboard using Route Descriptors** (`/stripe-apps/route-descriptors`): Implement soft, context-preserving navigation to Dashboard pages.
*   **Using Install Links** (`/stripe-apps/install-links`): Allow users to install your app outside of the Stripe App Marketplace.
*   **Enable Post-Install Actions and Configurations** (`/stripe-apps/post-install-actions`): Support additional configurations after app installation.
*   **Design Patterns for Stripe Apps** (`/stripe-apps/patterns`): Recommended patterns for common app functionalities:
    *   `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 flow` (`/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`)

### Integrations and Embeddings

*   **Embedded Stripe Apps Integration Guide** (`/stripe-apps/embedded-apps`): Integrate Stripe Apps using embedded components.
*   **Marketing Software Integrations** (`/stripe-apps/embedded-apps/marketing-integrations`): Embed marketing software integrations, such as Mailchimp.

### Examples and Resources

*   **Sample Apps** (`/stripe-apps/sample-apps`): Explore working examples of Stripe Apps from design to code.
*   **Back-end App Example** (`/stripe-apps/back-end-app-example`): A guide to building a backend-only Stripe App.
*   **Front-end App Example** (`/stripe-apps/front-end-app-example`): A guide to building a frontend-only Stripe App.
*   **Full-stack App Example** (`/stripe-apps/full-stack-app-example`): A guide to building a Stripe App with both frontend and backend functionality.
*   **App Analytics** (`/stripe-apps/analytics`): Access analytics to understand how your app performs.