# Getting Started (/developers/websdk/getting-started)



<Callout type="info">
  The WebSDK is in **Private Preview**. The API may change before
  general availability. Contact support to request access.
</Callout>

The WebSDK is a low-level alternative to the Checkout SDK. Use it when you want to build a fully custom checkout UI in the browser instead of redirecting to or embedding an iframe of the hosted checkout page.

## Installation [#installation]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```sh
    npm install @pandabase/websdk
    # for React apps:
    npm install @pandabase/react-websdk
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```sh
    pnpm add @pandabase/websdk
    # for React apps:
    pnpm add @pandabase/react-websdk
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```sh
    bun add @pandabase/websdk
    # for React apps:
    bun add @pandabase/react-websdk
    ```
  </CodeBlockTab>
</CodeBlockTabs>

<Callout type="info">
  For PCI compliance, the WebSDK runtime is always loaded from our CDN at
  `https://js.pandabase.io/websdk-production.js` — the npm package is a thin
  loader that fetches the same script. You can also include it directly:

  ```html
  <script src="https://js.pandabase.io/websdk-production.js"></script>
  ```

  Never self-host, bundle, or proxy the script. Doing so takes your application
  out of PCI SAQ-A scope.
</Callout>

For usage instructions, contact [support@pandabase.io](mailto:support@pandabase.io).
