Widgets Overview
The Fanfare SDK provides pre-built widget components through the@waitify-io/fanfare-sdk-solid package. These widgets can be used in React applications via web components.
Architecture
Widgets are built with SolidJS for optimal performance and bundle size, then exposed as web components that work with any framework, including React.Available Widgets
| Widget | Web Component | Description |
|---|---|---|
| ExperienceWidget | <fanfare-experience-widget> | Complete journey orchestration |
| QueueWidget | <fanfare-queue-widget> | Virtual waiting room |
| DrawWidget | <fanfare-draw-widget> | Lottery/raffle entry |
| AuctionWidget | <fanfare-auction-widget> | Real-time bidding |
| WaitlistWidget | <fanfare-waitlist-widget> | Pre-launch signup |
| TimedReleaseWidget | <fanfare-timed-release-widget> | Flash sale window |
Using Web Components in React
Installation
Registration
Register the web components once in your app:Usage
TypeScript Support
Add type declarations for web components:Event Handling
Web components emit custom events that you can listen to:Available Events
Queue Widget:fanfare-queue-enter- User entered queuefanfare-queue-leave- User left queuefanfare-queue-position-change- Position updatedfanfare-queue-admitted- User admitted
fanfare-draw-enter- User entered drawfanfare-draw-withdraw- User withdrewfanfare-draw-result- Draw result receivedfanfare-draw-proceed- User proceeding to checkout
fanfare-auction-bid- Bid placedfanfare-auction-outbid- User was outbidfanfare-auction-win- User won auctionfanfare-auction-proceed- User proceeding to checkout
fanfare-journey-change- Journey state changedfanfare-admitted- User admittedfanfare-error- Error occurred
Styling
CSS Variables
Widgets use CSS custom properties for theming:Theme Configuration
Pass theme config during registration:Container Styling
Custom UIs with Hooks
For maximum customization, use React hooks instead of widgets:Comparison
| Approach | Best For | Customization | Bundle Size |
|---|---|---|---|
| Web Components | Quick integration | Theme + CSS only | Smallest |
| React Hooks | Custom UIs | Full control | Medium |
Next Steps
- Queue Widget - Queue widget reference
- Experience Widget - Experience widget reference
- Theming - Theme customization
- Solid SDK Widgets - Full widget API reference