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

# Embedded app quickstart

export const Alert = ({type, title, children}) => {
  const getIcon = () => {
    switch (type) {
      case 'info':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      case 'success':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm4.293 6.293L9 11.586 5.707 8.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414l4 4c.391.391 1.024.391 1.414 0l6-6c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%230CC26D'/%3E%3C/svg%3E";
      case 'warning':
        return "data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHdpZHRoPScxMDgwJyBoZWlnaHQ9JzEwODAnPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbGw9J3RyYW5zcGFyZW50Jy8+PHBhdGggZD0nTTEzLjc5NCAxMC43NSA4LjMgMS4yNWExLjUgMS41IDAgMCAwLTIuNiAwbC01LjQ5NCA5LjVBMS40OTQgMS40OTQgMCAwIDAgMS41IDEzaDExYTEuNDkzIDEuNDkzIDAgMCAwIDEuMjk0LTIuMjVNNi41IDUuNWEuNS41IDAgMCAxIDEgMFY4YS41LjUgMCAwIDEtMSAwek03IDExYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNScgc3R5bGU9J3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7ZmlsbDojZmY5ZjM1O2ZpbGwtcnVsZTpub256ZXJvO29wYWNpdHk6MScgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLjAyIDE5LjMwNSlzY2FsZSg3Ny4xNCknLz48L3N2Zz4=";
      case 'danger':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm5.707 4.293L10 9.586 4.293 4.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414L8.586 11l-5.707 5.293c-.391.391-.391 1.024 0 1.414s1.024.391 1.414 0L10 12.414l5.707 5.293c.391.391 1.024.391 1.414 0s.391-1.024 0-1.414L11.414 11l5.707-5.293c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%23F45252'/%3E%3C/svg%3E";
      case 'note':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      default:
        return "";
    }
  };
  return <div className={`alert alert--${type}`}>
      <div className="alert-icon" style={{
    backgroundImage: `url("${getIcon()}")`,
    backgroundRepeat: 'no-repeat',
    backgroundPosition: 'center center',
    backgroundSize: '20px',
    width: '24px',
    height: '24px',
    position: 'absolute',
    left: '16px',
    top: '16px'
  }} />
      <div className="alert-content">
        {title && <div className="alert-title">{title}</div>}
        <div className="alert-body">{children}</div>
      </div>
    </div>;
};

Embedding a Superblocks application on a web page is straight-forward and only involves a few steps.

## Step 1. Create an application

Before you start embedding a Superblocks app in your website, you'll need an application to embed. Learn how to build a Superblocks application in [Building with Clark](/building-with-clark).

Once you have an initial version of your app ready, [**commit & deploy**](/development-lifecycle/version-control/superblocks-sdlc) your app.

## Step 2. Install the SDK

Install either Superblocks' [React](https://www.npmjs.com/package/@superblocksteam/embed-react) or [Javascript](https://www.npmjs.com/package/@superblocksteam/embed) SDK into your web application's client-side code.

<Tabs>
  <Tab title="React">
    ```bash theme={null}
    npm install --save @superblocksteam/embed-react
    ```
  </Tab>

  <Tab title="JavaScript">
    ```bash theme={null}
    npm install --save @superblocksteam/embed
    ```

    Alternatively, add the following `<script>` into the `<head>` of your web page.

    ```html theme={null}
    <script src="https://prod-cdn.superblocks.com/packages/@superblocksteam/embed@latest/embed.bundle.js"></script>
    ```
  </Tab>
</Tabs>

## Step 3. Add the embed component

Add the embed component to your HTML on the page you want the app to appear on.

<Tabs>
  <Tab title="React">
    <Alert type="info">
      Get your app's <code>\<SuperblocksEmbed></code> component by clicking the <strong>Share application</strong> icon in the app editor's header, followed by <strong>Setup embed</strong> in the share modal.
    </Alert>

    ```tsx theme={null}
    import React from 'react';
    import { SuperblocksEmbed } from '@superblocksteam/embed-react';

    const AppWithEmbed = () => {

        return <>
            <SuperblocksEmbed
                src='https://app.superblocks.com/code-mode/embed/applications/<APP_ID>'
            />
        </>;
    }
    ```
  </Tab>

  <Tab title="JavaScript">
    <Alert type="info">
      Get your app's <code>createSuperblocksEmbed</code> snippet by clicking the <strong>Share application</strong> icon in the app editor's header, followed by <strong>Setup embed</strong> in the share modal.
    </Alert>

    ```js theme={null}
    const sbApp = Superblocks.createSuperblocksEmbed({
        id: "sb-app",
        src: "https://app.superblocks.com/code-mode/embed/applications/<APP_ID>"
    });

    document.body.appendChild(sbApp);
    ```
  </Tab>
</Tabs>

## Step 4. View your embedded app

Run your web app in development mode to view and test the embedded app on your site.

<Alert type="success">
  You've now successfully embedded your application! Customize and extend your embed's behavior by exploring the docs below.
</Alert>

## What's next?

With a basic embedded app on your website, you're ready to [**authenticate external users**](/hosting/embedded-apps/authentication) with your Superblocks app.
