@liebstoeckel/plugin-poll
v0.3.4
Published
Live polling plugin for liebstoeckel decks.
Downloads
141
Maintainers
Readme
@liebstoeckel/plugin-poll
Live polling for liebstoeckel. The audience votes, and results animate in real time.
Part of liebstoeckel, a code-first presentation framework. You write decks in MDX and TSX and build them into a single self-contained HTML file with no server or runtime dependencies. The same file works offline, and when you host it the deck runs a live session between the presenter and the audience. Built on Bun, React 19, Motion, and Tailwind v4.
Status: experimental, pre-1.0. liebstoeckel is an evolving experiment, not yet production-ready. Before 1.0, breaking changes can land in any release without a major-version bump, so pin an exact version if you depend on it.
Drop a poll onto a slide, share the live link, and watch the bars fill as the room votes. There's no poll server to run, since the state lives entirely in the deck's shared Yjs document. The slide still renders offline and in thumbnails through a static fallback.
Install
bun add @liebstoeckel/plugin-poll
bun add react # peerUsage
Register the plugin with <Present>, then place it on a slide:
// main.tsx
import poll from "@liebstoeckel/plugin-poll";
<Present plugins={[poll]} slides={[…]} />;// a slide
import { Plugin } from "@liebstoeckel/engine";
<Plugin id="poll" props={{ question: "Which stack?", options: ["Bun", "Node", "Deno"] }} />;The id is fixed to "poll". Present the deck live (liebstoeckel live …) so the audience can vote.
Exports
| Entry | What |
|---|---|
| @liebstoeckel/plugin-poll | Default export: the poll PluginDef. It also re-exports pollSchema, tally, totalVotes, myVote, leader, and the PollState / TallyRow types |
| @liebstoeckel/plugin-poll/logic | The framework-free tally and vote logic, easy to unit-test |
Links
Licensed under MPL-2.0.
