> ## Documentation Index
> Fetch the complete documentation index at: https://engage-docs.frigade.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Frigade Engage Quickstart Guide

> Get set up with Frigade Engage in less than 15 minutes

<img src="https://mintcdn.com/frigade-docs/vb0YqHQGpTytLgI7/images/welcome.png?fit=max&auto=format&n=vb0YqHQGpTytLgI7&q=85&s=c09c3a4cb253ff4c9dcd772251ddb095" className="rounded pointer-events-none" width="2171" height="944" data-path="images/welcome.png" />

<Tip>
  Using [Claude Code](https://claude.com/claude-code)? Skip the manual setup with the [Frigade Engage Claude Code Skill](https://github.com/FrigadeHQ/frigade-engage-skill) — describe the flow you want and Claude creates it in Frigade and wires it into your codebase for you.
</Tip>

<Steps>
  <Step title="Sign up and install">
    <AccordionGroup>
      <Accordion title="Get your API key">
        The first thing to do is sign up for a Frigade account at [frigade.com](https://app.frigade.com/sign-up). Then, locate your Frigade public API key in the [Developer](https://app.frigade.com/developer) tab of the dashboard.

        <Frame>
          <img src="https://mintcdn.com/frigade-docs/vb0YqHQGpTytLgI7/images/platform/developer.png?fit=max&auto=format&n=vb0YqHQGpTytLgI7&q=85&s=5e6542db65e287c2a4be1e72267acfaa" width="1408" height="526" data-path="images/platform/developer.png" />
        </Frame>
      </Accordion>

      <Accordion title="Install the React SDK">
        Install <a href="https://www.npmjs.com/package/@frigade/react" target="_blank" rel="noreferrer">@frigade/react</a> with your package manager.

        <CodeGroup>
          ```txt npm theme={"system"}
          npm install @frigade/react
          ```

          ```txt pnpm theme={"system"}
          pnpm install @frigade/react
          ```

          ```txt yarn theme={"system"}
          yarn add @frigade/react
          ```
        </CodeGroup>

        Next, add the Frigade `Provider` component to your app and plug in your public API key from earlier. We recommend wrapping your entire application to ensure that the SDK is available everywhere.
        Below are examples for how to install the Provider in popular React frameworks.

        <CodeGroup>
          ```tsx React theme={"system"}
          // Add this to your main application file, e.g., App.tsx or index.tsx
          import * as Frigade from "@frigade/react";

          // Replace this with your Frigade public API key
          const FRIGADE_API_KEY = "api_public_abcd1234";

          export const App: React.FC = () => {
            return (
              <Frigade.Provider 
                apiKey={FRIGADE_API_KEY}
                // Replace this with the ID of the signed in user
                userId="my-user-id"
                userProperties={{
                  email: "john@doe.com",
                  name: "John Doe"
                }}
              >
                {/* ... */}
              </Frigade.Provider>
            );
          };
          ```

          ```tsx Next.js (App router) theme={"system"}
          // frigade-provider-wrapper.tsx
          "use client";
          import * as Frigade from "@frigade/react";
          import { ReactNode } from 'react';

          // Replace this with your Frigade public API key
          const FRIGADE_API_KEY = "api_public_abcd1234";

          interface FrigadeProviderWrapperProps {
            children: ReactNode;
          }

          const FrigadeProviderWrapper: React.FC<FrigadeProviderWrapperProps> = ({ children }) => {
            return (
              <Frigade.Provider 
                apiKey={FRIGADE_API_KEY}
                // Replace this with the ID of the signed in user
                userId="my-user-id"
                userProperties={{
                  email: "john@doe.com",
                  name: "John Doe"
                }}
              >
                {children}
              </Frigade.Provider>
            );
          };

          // layout.tsx
          export default function Layout({ children }: { children: ReactNode }) {
            return (
              <FrigadeProviderWrapper>
                {children}
              </FrigadeProviderWrapper>
            );
          }
          ```

          ```tsx Next.js (Pages router) theme={"system"}
          // Add this to your _app.tsx file
          import * as Frigade from "@frigade/react";
          import { AppProps } from 'next/app';

          // Replace this with your Frigade public API key
          const FRIGADE_API_KEY = "api_public_abcd1234";

          function MyApp({ Component, pageProps }: AppProps) {
            return (
              <Frigade.Provider 
                apiKey={FRIGADE_API_KEY}
                // Replace this with the ID of the signed in user
                userId="my-user-id"
                userProperties={{
                  email: "john@doe.com",
                  name: "John Doe"
                }}
              >
                <Component {...pageProps} />
              </Frigade.Provider>
            );
          }

          export default MyApp;
          ```
        </CodeGroup>

        Great! Now you're ready to start building.
      </Accordion>
    </AccordionGroup>
  </Step>

  <Step title="Building and styling">
    <AccordionGroup>
      <Accordion title="Create a Flow">
        **Add a Flow to your application**

        For this example, let's add a `Banner` to our product.

        1. Click the **Create** button at the top of any page in the dashboard. Select the **Banner** component.
        2. On the Flow detail page, click the **Deploy** button. Copy the code snippet to your clipboard.
        3. Next, place the `<Frigade.Banner />` component in your application. Make sure to do this in a subcomponent of the `<Frigade.Provider />` component.

        ```tsx theme={"system"}
        import * as Frigade from "@frigade/react";

        export const MyComponent = () => {
          return <Frigade.Banner flowId="flow_abcd1234" />;
        };
        ```

        **View the Flow**

        Tada! You should now see a shiny `Frigade Banner` where you placed it.

        <img src="https://mintcdn.com/frigade-docs/2ELnoUYc9O4Ydjzw/images/platform/banner.png?fit=max&auto=format&n=2ELnoUYc9O4Ydjzw&q=85&s=1b065e68687f91cfec0edcd7a47f003f" width="1710" height="401" data-path="images/platform/banner.png" />

        **See users in the Flow**

        Once you interact with the Flow in your application, you should see your user appear in the users tab of the Flow detail page. You can reset a user's progress in the Flow from here, which is especially useful for testing.

        <img src="https://mintcdn.com/frigade-docs/vb0YqHQGpTytLgI7/images/platform/reset-user.png?fit=max&auto=format&n=vb0YqHQGpTytLgI7&q=85&s=2f0eb06f64cfd58dcb5b9558e538b2f4" width="2987" height="521" data-path="images/platform/reset-user.png" />
      </Accordion>

      <Accordion title="Updating Flows">
        Once a Flow is created, you can update it at any time from the dashboard.

        1. Navigate to the [Flows](https://app.frigade.com/flows) page and select a Flow
        2. In the Editor tab you can make changes with the basic or advanced editor
        3. Make changes and click **Save** and Frigade will update the Flow in real-time

        Check out the documentation for each component to see all the configuration options. Check out the [Banner](/component/banner) component for this quickstart demo.

        <Frame>
          <img src="https://mintcdn.com/frigade-docs/vb0YqHQGpTytLgI7/images/platform/editor.png?fit=max&auto=format&n=vb0YqHQGpTytLgI7&q=85&s=fc40523ed27e6c6ced0882293f0e7ecc" width="4598" height="2410" data-path="images/platform/editor.png" />
        </Frame>

        <Note>If you plan to make major changes to a Flow, we recommend [version control](/platform/versioning).</Note>
      </Accordion>

      <Accordion title="User targeting">
        Sometimes you only want to show an experience to a specific user or group of users. Frigade makes this easy with [targeting](/platform/targeting).

        1. Navigate to the Flows page and select a Flow
        2. In the **Targeting** tab you can define the targeting for the Flow
        3. Frigade makes sure the Flow is only shown to users that match your criteria

        Check out [integrations](/integrations) to connect other platforms and import existing user segments for targeting.

        <Frame>
          <img src="https://mintcdn.com/frigade-docs/vb0YqHQGpTytLgI7/images/platform/flow-detail-audience.png?fit=max&auto=format&n=vb0YqHQGpTytLgI7&q=85&s=3ff629c1598a46737aad2579fcd342b1" width="3456" height="1926" data-path="images/platform/flow-detail-audience.png" />
        </Frame>
      </Accordion>

      <Accordion title="Styling Flows">
        Frigade is fully customizable. You can style components to fit seamlessly within your application. Styling documentation is covered [here](/sdk/styling/). You can also see a live demo of the theming system at [demo.frigade.com](https://demo.frigade.com).

        <video autoPlay muted loop playsInline className="w-full aspect-video" src="https://app.frigade.com/images/marketing/img/themes-1.mp4" />
      </Accordion>

      <Accordion title="Custom components">
        When a pre-built Frigade UI component won't cut it, you can also build custom components with the Frigade SDK. See our custom component guide [here](/guides/custom).
      </Accordion>
    </AccordionGroup>
  </Step>

  <Step title="Nice work!">
    You've set up your first Frigade Flow. Our docs cover additional functionality like [analytics](/platform/analytics), [no-code deployments](/platform/collections), and [environments](/platform/environments).

    If you have questions or want to discuss your particular project, feel free to reach out to us at [support@frigade.com](mailto:support@frigade.com) or [book a demo](https://cal.com/team/frigade/frigade-demo).
  </Step>
</Steps>
