every widget your
static site actually needs.
Grouped by what they're for. Community, growth, publishing, site-wide. Drop them in one at a time or all at once — same dashboard, same invoice.
community
Reader participation without handing your traffic to a third-party JS monolith.
Comments
Threaded replies. Moderation queue, approve/reject/delete. Auto-close after N days. No reader signup — they type, they send.
Reactions
Hearts, claps, bookmarks, thumbs. Per-page, anonymous, lightweight. Signal without the noise.
Polls
Multi-choice, anonymous, real-time tallies. CSV export. "Should I write part two?" at the bottom of a post.
Feedback boards
Readers post suggestions, you triage with status tracking (open / planned / shipped). Public or private.
growth
The widgets that turn visitors into a list you actually own.
Email subscriptions
Double opt-in, per-post notifications or weekly digest. One-click unsubscribe. Export the list whenever — you own it.
Waitlist
Pre-launch signups. Referral-friendly. Export to CSV when it's time to open the gates.
Forms
Contact forms, surveys, custom fields. Honeypot + AI spam filter. Submissions land in your dashboard — not your inbox.
publishing
A whole headless CMS underneath the widgets. Write in TipTap, store in Markdown, schedule or publish immediately. Drafts for already-published posts — edit, review, publish the diff. AI-generated excerpts via Bedrock when you can't be bothered.
On publish we trigger your static site's build so the post goes live without you touching CI. Image uploads handled, asset URLs returned. Your repo stays clean.
╭─ draft ─────────────────────────────────╮
│ title the case against newsletters
│ slug /case-against-newsletters
│ excerpt (AI-generated, edit if you want)
│ scheduled tues 08:00 pt
│ status draft → queued to publish
╰─────────────────────────────────────────╯
# on publish
✓ markdown committed → github:tim/blog
✓ site rebuild triggered (cloudflare pages)
✓ subscribers notified (142 emails queued)
site-wide
The small things that need to sit across pages instead of inside one.
Announcements
Top-of-page banners, dismissible per-reader. Schedule start/end. Link-in, done.
Page views
Lightweight view tracking per page, per path, per day. Dashboard charts. No cookie banner needed.
Team & roles
Email-invite teammates at Owner / Admin / Editor / Viewer. Editors write posts, admins moderate, owners own billing.
works with whatever you ship
Packages for the frameworks we use ourselves — and plain HTML embed for everything else.
Astro components
<Comments>, <Subscribe>, <Form>, <Poll>. Server-rendered where it makes sense, hydrated where it doesn't.
React components
Drop-in for Next, Remix, Gatsby. Same props as Astro, minus the SSR defaults.
Solid components
For SolidStart or any Solid app. Same API shape, tiny runtime.
Hugo, Jekyll, Eleventy, plain HTML, a WordPress theme — drop
the <script> tag, add the data-*
attributes. Works anywhere that renders HTML.
ready when you are.
Free for personal sites. Paid plans at $9 and $29. Or get jamwidgets Team free with any cmdline Team subscription.
coming soon in progress
Social queue. Connect a Bluesky or Mastodon account, queue or schedule posts from the same dashboard you write in. Auto-post on publish, or draft a thread and send it later.
Behind the flag today while we get the auth plumbing right. If you want early access, say hi.