publishing, audience, and interaction · one backend

the stateful tools
your static site cannot provide.

Start with publishing or one interactive surface. Add reader analytics, audience capture, and moderation when they become useful — all in the same workspace.

start with the job

get one useful thing working first

You do not need to adopt the whole toolkit. Pick the outcome your site needs now; the rest will still be there later.

Receive a contact

Put a form on the site, keep suspicious submissions in review, and track the conversations that still need a reply.

set up a form →

Publish an article

Write and schedule a Markdown-backed post, then trigger the static-site build when it is ready.

connect publishing →

Hear from readers

Add comments or reactions to an existing article without rebuilding the site around another platform.

add comments →

Using React, Solid, or plain HTML? Choose your integration →

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. Ask "Should I write part two?" at the bottom of a post and see the response.

Feedback boards

Readers post suggestions, you triage with status tracking (open / planned / shipped). Public or private.

growth

The widgets that turn visitors into a direct audience around your site.

Email subscriptions

Double opt-in, per-post notifications or weekly digest, and one-click unsubscribe. Build a direct audience around your site.

Waitlist

Pre-launch signups with status tracking. See who is waiting and move each entry from pending to invited or joined.

Forms

Contact forms, surveys, custom fields. Honeypot + AI spam checks. Submissions stay actionable in the Jamwidgets Inbox with their history.

publishing

A focused headless CMS underneath the widgets. Write inTipTap, store in Markdown, schedule or publish immediately. Drafts for already-published posts — edit, review, publish the diff. Generate a clean excerpt from the opening text when you need one.

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.

jamwidgets dashboard · posts
╭─ draft ─────────────────────────────────╮
 title      the case against newsletters
 slug       /case-against-newsletters
 excerpt    (auto-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

Cookieless first-party view tracking per page, path, and day, with dashboard charts for the signals that matter.

Team & roles

Email-invite teammates at Owner / Admin / Editor / Viewer. Editors write posts, admins moderate, owners own billing.

ready when you are.

Start with one site for free, including the CMS, analytics, widgets, spam protection, and MCP. Team is $39/month for multiple sites, collaborators, higher limits, and governance.