Guaranteed best solution you will need to

Next.js Spin Wheel Component

Create optimized wheel experiences with client-side animations, server-verified outcomes, and efficient prize distribution

Benefits

Why use PLG OS Spin The Wheel component?

Save 100+ dev hours using this Spin The Wheel component rather than building it yourself

Set up in 2 mins with 2 lines of code

Guide users with customizable screens for a dynamic experience.

Full Customization Guaranteed

Our components will adjust according to your 100% of needs, no sacrifice in user experience.

Remote configuration

Control text and features via our no-code Spin The Wheel.

Advanced User 360

Spin The Wheel data is automatically added to the Customer 360.

Full Customer Support

Our team makes sure that we meet all your demands forever when using our component

Integration with your tools

Send data from Spin The Wheel directly to your CRM or any other tools

Faster, Smarter Onboarding

Pre-built efficiency vs. starting from scratch

With

PLG OS Spin The Wheel component

Features

Web & Mobile code out of the box

Tracking and cool charts out of the box

Maintenance and bug fixes out of the box

Change any text/data using no code PLG OS Dashboard out of the box

Adding data into customer 360 out of the box

A/B Testing, Personalization, Faster deployment and so much more out of the box

Without

PLG OS Spin The Wheel component

Features

Build everything from scratch

Work with devs, designers, product to build and maintain it

Tracking and building cool charts from the scratch

No Advanced insights & analytics

No A/B testing, personalization

Slower deployment

24/7 customer support

Installation

Simple Steps to setup the Spin The Wheel

1

Install SDK

Follow the installation guide to install Next.js sdk

2

Navigate to Project

Go to plg os platform and deploy Spin The Wheel component

3

Run Installation

copy paste the generated Spin The Wheel code into your project and npm start

Next.js setup

Add the Spin The Wheel component to a Next.js App Router project

Next.js uses the same @questlabs/react-sdk package as React (version 2.3.0 on npm as of September 2026). App Router pages are Server Components by default, and the SDK bundle does not include a "use client" directive, so load the wheel from your own Client Component.

  1. 1. Install the React SDK

    npm install @questlabs/react-sdk
  2. 2. Create a Client Component for the wheel

    Mark the file with "use client" and load the SDK with next/dynamic and ssr: false, so the wheel renders in the browser only.

    app/components/SpinWheel.jsx

    "use client";
    
    import dynamic from "next/dynamic";
    import "@questlabs/react-sdk/dist/style.css";
    
    const QuestProvider = dynamic(
      () => import("@questlabs/react-sdk").then((mod) => mod.QuestProvider),
      { ssr: false }
    );
    const SpinTheWheel = dynamic(
      () => import("@questlabs/react-sdk").then((mod) => mod.SpinTheWheel),
      { ssr: false }
    );
    
    export default function SpinWheel() {
      return (
        <QuestProvider apiKey="your-api-key" entityId="your-entity-id" apiType="PRODUCTION">
          <SpinTheWheel
            userId="your-user-id"
            token="your-user-token"
            campaignId="your-campaign-id"
          />
        </QuestProvider>
      );
    }
  3. 3. Render it from any page

    The page itself stays a Server Component; only SpinWheel runs on the client.

    app/rewards/page.jsx

    import SpinWheel from "../components/SpinWheel";
    
    export default function RewardsPage() {
      return <SpinWheel />;
    }

Next.js notes

  • ssr: false only works inside a Client Component, which is why the dynamic() calls live in the file marked "use client", not in the page.
  • The SDK exports QuestProvider and SpinTheWheel as named exports, so each import() picks the export with .then((mod) => mod.Name).
  • apiType is "PRODUCTION" (the default) or "STAGING". The wheel's other props are the same as in React; see the React Spin The Wheel setup.

Sources: @questlabs/react-sdk on npm · Next.js docs: Server and Client Components · Next.js docs: Lazy loading (ssr: false, named exports)

Learn more from our Blogs

Explore expert articles on the latest trends and tips in data

View all Blogs

What is CSAT? How to calculate it?

Read Blog

What is User Experience (UX)? Is it Still Relevant in 2024?

Read Blog

What is NPS? Your Guide to Understanding Net Promoter Score

Read Blog