Getting started
POLST lets a brand drop a live poll — a polst — or an ordered set of polsts — a campaign — into almost any surface: a web page, a single-page app, a mobile app, or a server-side integration. Every surface treats polsts and campaigns as first-class, equal citizens: anything you can do with a polst you can do with a campaign, and every surface exposes a way for a brand to list and manage its own polsts and campaigns.
The five embedding modes
Section titled “The five embedding modes”| # | Mode | What it is | Host-page technology |
|---|---|---|---|
| 1 | Iframe | A ready-made page loaded in a sandboxed frame | Any HTML page |
| 2 | JS script tag | A loader script that renders real DOM into a target element — not an iframe | Any HTML page |
| 3 | JS SDK | An npm package that exposes the same renderer plus a programmatic client | Any JS app (SPA, Next.js, Node) |
| 4 | Native SDKs | Swift / Kotlin / React Native libraries that render native views | iOS, Android, RN |
| 5 | REST API | A versioned, resource-oriented HTTP API separate from the internal tRPC surface | Anything that speaks HTTP |
Everything sits on the REST API
Section titled “Everything sits on the REST API”All five modes sit on top of the REST API (mode 5). The SDKs and the script tag are renderers; the iframe is a hosted renderer. Because every mode speaks the same public contract, a vote button written against the SDK, the script tag, or the REST API receives identical data.
Where to go next
Section titled “Where to go next”- Choosing an embed mode — pick the right surface for your situation.
- Authentication & device identity — the identifiers and the three auth layers every mode plugs into.
- Data shapes — the canonical JSON every mode returns.
- REST API reference — the per-endpoint contract.
- Try a live demo — see an embed running in the browser.