## Building and Managing Stripe Apps

This documentation section provides comprehensive guidance on developing, deploying, and managing applications within the Stripe ecosystem. It covers everything from the fundamental concepts of Stripe Apps to advanced topics like UI component customization, API authentication, and distribution strategies.

### Core Concepts and Getting Started

*   **Overview of Stripe Apps:** Understand the core capabilities and benefits of building on the Stripe platform, allowing for custom user interfaces within the Stripe Dashboard and orchestration of the Stripe API. (Page 30)
*   **How Stripe Apps Work:** Dive into the architecture and components of Stripe Apps, including frontend and backend considerations, and learn about different app types (backend, frontend, full-stack). (Page 21)
*   **Getting Started with Stripe Apps:** A step-by-step guide to building your first "Hello, world!" app, covering installation of the Stripe CLI and basic app creation. (Page 18)
*   **Common Use Cases:** Explore practical examples of how Stripe Apps can be used to solve common business needs, categorized by app type (backend, frontend, full-stack). (Page 14)

### Development and Design

*   **Building a UI:** Learn how to create custom user interfaces within the Stripe Dashboard using TypeScript, React, and Stripe's UI Extensions SDK. (Page 17)
*   **UI Extension System:** Understand the intricacies of how UI extensions function, including their sandboxed environment and reliance on Stripe's UI components. (Page 22)
*   **UI Components:** A comprehensive reference to all available UI components for building your app's interface, from basic elements like Buttons and TextFields to more complex components like Charts and Tables. (Page 49)
    *   **Layout and Structure:** `Box`, `Inline`, `Divider`, `FormFieldGroup`, `FullPageTabs`, `FullPageView`, `ContextView`, `FocusView`, `SettingsView`, `SignInView`, `OnboardingView`, `OverviewPage`. (Pages 54, 72, 65, 67, 68, 69, 59, 66, 83, 84, 77, 78)
    *   **Data Display and Input:** `Accordion`, `Badge`, `Banner`, `BarChart`, `Button`, `ButtonGroup`, `Checkbox`, `Chip`, `DataTable`, `DateField`, `DetailPageModule`, `DetailPagePropertyList`, `DetailPageTable`, `Icon`, `Img`, `LineChart`, `Link`, `List`, `Menu`, `PropertyList`, `Radio`, `SearchField`, `Select`, `Sparkline`, `Spinner`, `Switch`, `Table`, `Tabs`, `TaskList`, `TextArea`, `TextField`, `Toast`, `Tooltip`. (Pages 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 70, 71, 73, 74, 75, 76, 79, 80, 81, 82, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94)
*   **Design Patterns:** Follow recommended design patterns for a consistent and user-friendly experience, covering onboarding, navigation, state communication, and more. (Page 95)
    *   **Key Patterns:** 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, Waiting Screens. (Pages 111, 99, 112, 106, 100, 107, 96, 97, 98, 108, 101, 109, 102, 103, 104, 105, 110)
*   **Styling Your App:** Learn how to style your app using provided design tokens to maintain visual consistency with the Stripe Dashboard. (Page 113)
*   **Designing Your App:** Understand the design philosophy and guidelines for creating effective Stripe Apps, including branding and custom styling considerations. (Page 114)

### Authentication and Server-Side Logic

*   **API Authentication Methods:** Explore the different ways your app can authenticate requests to the Stripe API, including Platform keys, OAuth 2.0, and Restricted API Keys (RAKs). (Page 2)
*   **OAuth 2.0:** Detailed guide on implementing OAuth 2.0 for secure API authentication. (Page 3)
*   **Restricted API Keys:** Understand how to use Restricted API Keys (RAKs) for more granular and secure API access. (Page 4)
*   **Authorization Flows:** Implement PKCE OAuth workflows to retrieve access tokens from OAuth providers directly within your Stripe App. (Page 39)
*   **Server-Side Logic:** Add backend code to validate and process user actions, integrate with third-party systems, and handle webhook events. (Page 6)
*   **Storing Secrets:** Securely store sensitive data like authentication credentials using the Secret Store API. (Page 46)

### App Management and Deployment

*   **App Manifest Reference:** Understand the structure and fields of the `stripe-app.json` file, which describes your app's integration with Stripe. (Page 35)
*   **Stripe Apps CLI:** Learn how to use the command-line interface to create, develop, configure, and upload your Stripe Apps. (Page 36)
*   **Permissions Reference:** Understand how to request and manage permissions for your app to access user data and Stripe API objects. (Page 37)
*   **Enable Sandbox Support:** Configure your app for testing in Stripe's sandboxed environments before going live. (Page 12)
*   **Handle Different Modes:** Adapt your app to function correctly in both live mode and sandbox environments. (Page 19)
*   **Enable Local Network Access:** Configure your app to access local network resources for development and previewing. (Page 11)
*   **Upload and Install Your App:** Guide on uploading your app for team members and installing it in test or live modes. (Page 115)
*   **Distribution Options:** Learn about the different ways to share your Stripe Apps, including public distribution via the App Marketplace and private sharing. (Page 20)
*   **Publishing to the App Marketplace:** A step-by-step guide on how to get your app approved and listed on the Stripe App Marketplace. (Page 24)
*   **App Review Requirements:** Understand the quality and functional requirements for apps submitted to the App Marketplace. (Page 25)
*   **Testing Your App:** Strategies and tools for testing your app externally before publication. (Page 26)
*   **App Analytics:** Access and export data to understand how your app is being used and its performance. (Page 5)
*   **Manage App Versions and Releases:** Learn about app versioning and the process of releasing new versions of your app. (Page 117)
*   **Deep Links:** Create deep links to navigate users directly to specific pages within your Stripe App in the Dashboard. (Page 8)
*   **Install Links:** Allow users to install your app outside of the Stripe App Marketplace. (Page 23)
*   **Post-Install Actions:** Configure additional steps users might need to complete after installing your app. (Page 40)

### Migration and Legacy Information

*   **Legacy Extensions:** Information about the deprecated extensions integration pattern and guidance on migrating to Stripe Apps. (Page 1)
*   **Migrate an Extension to Stripe Apps:** Understand why and how to migrate existing extensions to the newer Stripe Apps platform. (Page 27)
*   **Migrate a Plugin:** Guides on migrating plugins to Stripe Apps using OAuth 2.0 or Restricted API Keys (RAKs), or to Stripe Connect. (Pages 31, 32, 33)

### Advanced Topics

*   **Embedded Stripe Apps:** Integrate third-party Stripe Apps into your own platform using embedded components. (Page 9)
*   **Marketing Software Integrations:** Examples of integrating marketing software, such as Mailchimp, using Stripe Apps. (Page 10)
*   **UI Extension SDK API Reference:** Documentation for the Extension SDK, providing context props and utility functions for UI extensions. (Page 38)
*   **Component Hierarchy Constraints:** Understand the rules governing how UI components can be composed within your app. (Page 7)
*   **Next Generation UI Components:** Get early access to upcoming UI components with updated APIs. (Page 28)
*   **Using Roles in UI Extensions:** Tailor app functionality based on user roles within the Stripe Dashboard. (Page 116)