Frequently Asked Questions

Everything you need to know about the SpinSet app.

Wheels & Slices

Is the wheel random?

Yes. By default, all wheel spins are completely random using your browser's cryptographic random number generator. There's no way to predict or influence where the wheel will land - each spin is independent and every eligible slice has an equal chance of being selected.

How do I create and manage wheels?

Click 'Add Wheel' to create a new wheel. Each wheel has a settings panel (click the chevron icon) where you can rename it, add or remove slices, customize colors, and configure spin behavior. You can delete a wheel using the trash icon, but you must always have at least one wheel. The free version supports up to 2 wheels; Pro unlocks unlimited wheels.

How do I customize wheel slices?

In the wheel settings, you'll see a placeholder row at the bottom of the slice list. Type a label and press Enter or Tab to add a new slice - a new placeholder appears automatically for rapid entry. Each slice can be customized with a custom color (click the color swatch), reordered using the arrow buttons, or shuffled randomly. Click the gear icon on a slice for advanced options like marking it as decorative or configuring slice constraints.

What are color schemes?

Each wheel can use a color scheme (Rainbow, Blue, Red, Green, Purple, Christmas, Holly, or Frost) that automatically assigns colors to visible slices by position. When you select a scheme, slices are recolored. Manually changing a slice color switches the wheel to 'Custom' mode, preserving your individual color choices.

Slice Behavior

How do I hide slices?

Each slice has a 'Hide' setting with three options: Never (always visible), On Land (hides after being landed on and you click 'Next Spin'), or Always (permanently hidden). Use the wheel-level 'Hide on Land' buttons (None/Some/All) to quickly set this for all slices. You can also click the eye icon on any slice to toggle between hidden (Always) and visible (Never).

What are decorative slices?

Decorative slices appear on the wheel visually but can never be landed on. The wheel will always stop on a non-decorative slice. Each slice has a 'Decorative' setting with three options: Never (can be landed on), On Land (becomes decorative after being landed on), or Always (permanently decorative). Use the wheel-level 'Decorative on Land' buttons (None/Some/All) to batch-set this for all slices.

How do slice constraints work?

Slice constraints are a Pro feature. When you have multiple wheels with 'Enforce Spin Order' enabled, you can configure which slices on the current wheel are eligible based on what was landed on the previous wheel. In the slice settings, use the 'Allowed Results' checkboxes, or use 'only' to allow just one prior result, or 'except this' to allow all but one.

Spinning

What is Spin Mode?

Spin Mode provides a distraction-free, full-screen experience ideal for presentations or streaming. Each wheel takes up the full screen with snap scrolling. Use Arrow keys to navigate between wheels, Space to spin the current wheel, and N to finalize results and start a new round.

What does 'Enforce Spin Order' do?

When enabled, wheels must be spun in a specific order (configured in Global Settings). You cannot spin a wheel until the previous one in the order has been spun. This also enables the slice constraints feature, where slice eligibility can depend on previous wheel results.

How do I re-spin a wheel?

Double-click on the result overlay to dismiss it and re-spin that wheel. Note that if 'Enforce Spin Order' is enabled, you can only re-spin the most recently spun wheel, and doing so will reset your progress to that wheel.

What do 'Next Spin' and 'Reset All' do?

'Next Spin' finalizes the current round - it dismisses all results, hides any landed slices (if 'Hide on Land' is enabled), and prepares for a fresh spin round. 'Reset All' clears all spin history and shows all previously hidden slices, restoring wheels to their original state.

How do I view spin history?

Click the hamburger menu icon and select 'History' to see a log of all spin results from your session. Each entry shows the timestamp and results from each wheel in that round.

Can I customize spin timing and animations?

Yes. In Global Settings, adjust the min/max spin time (how long wheels spin) and minimum revolutions (how many times the wheel rotates). You can also set the fireworks celebration duration or disable it entirely. Individual wheels can override the global spin time and fireworks settings.

Saving & Data

How do I save and load wheel sets?

Open Global Settings and click 'Manage Sets'. From there you can: Store your current set to browser storage, Export it to a file, or Copy it to clipboard. To bring in sets, use Import (from file) or Paste (from clipboard). Stored sets are saved in your browser's localStorage.

What gets saved when I store or export a wheel set?

Storing or exporting saves your wheel configuration including all settings, slices, and their current hidden/visible state. It does not save spin history or mid-round progress. When you load a set, you start a fresh session with the wheels in the exact state they were saved - including which slices were hidden.

What global settings are available?

Global Settings include: Page header/subheader text, minimum wheel revolutions, spin time range (min/max), fireworks celebration duration (set to 0 to disable), whether to show pegs on the wheel, enforce spin order, and the order in which wheels should be spun.

Is my data saved automatically?

Your current wheel configuration is not auto-saved. You must manually save using 'Save Wheel Set' in Global Settings. However, once saved, your wheel sets persist in localStorage until you delete them or clear your browser data.

Does the app work offline?

Yes. SpinSet is a static web app that works entirely in your browser. Once loaded, it doesn't require an internet connection. All data is stored locally on your device.

Pro

What features are included with Pro?

Pro unlocks: Ad-free experience, unlimited wheels per set (free is limited to 2), the ability to control which outcomes can follow others using slice constraints, and offline mode with the ability to install SpinSet as an app on your device. Pro is a one-time purchase that works on up to 3 devices.

How many devices can I use Pro on?

Your Pro license works on up to 3 devices at a time. Devices that haven't been used for 1 month are automatically released, freeing up a slot. Note: clearing your browser's localStorage counts as a new device, so avoid clearing site data if possible.

How do I upgrade to Pro?

Click the dollar sign icon in the top toolbar to open the upgrade modal. You'll be taken to a secure checkout page to complete your purchase. After payment, your license activates automatically.

How do I restore my Pro license on a new device?

Click the dollar sign icon, then select 'Need to restore your purchase?' at the bottom of the modal. Enter the email you used when purchasing to receive an activation link. Click the link in your email to activate Pro on your current device.

What happens to Pro features in imported wheel sets?

If you import a wheel set that uses Pro features without a Pro license: sets with more than 2 wheels cannot be imported, and any slice constraint rules will be removed. Upgrade to Pro to import the full configuration.

For Developers

What tech stack does SpinSet use?

SpinSet is built with Next.js (App Router) and uses static export for hosting. The wheel rendering uses HTML Canvas with requestAnimationFrame for smooth animations. All user data is stored in localStorage - there's no backend database. The app is a PWA (Progressive Web App) that works offline for Pro users.

How does the licensing system work?

SpinSet uses Paycheck for software licensing. It's a developer-friendly SDK that handles checkout, activation codes, device management, and license validation - all without requiring you to build your own licensing backend. Licenses are cryptographically signed and validated locally, so the app works offline after activation.

Can I use Paycheck for my own app?

Yes! Paycheck is designed for indie developers and small teams who want to add licensing to their apps without building payment and activation infrastructure from scratch. It supports one-time purchases and subscriptions, works with web apps and desktop apps, and integrates with Stripe for payments. Check out paycheck.dev to get started.