Your static site,
with a pulse.
Publish without rebuilding your editing stack. See what readers open, finish, and respond to. Handle comments, forms, and subscribers from one calm workspace while your site stays yours.
one backend for content, reader signals, and the work they create
one contact, end to end
a response becomes work, not another loose email
Here is the practical loop: collect the response on your site, decide what needs attention, then finish it without losing the original context.
Alex · Acme launch
Could you help with our launch page?
The queue stays quiet.
The original details and follow-up state remain together when you need the history later.
Start with a contact form, then add publishing, comments, subscriptions, or other widgets when the site earns them. Set up a form →
your frontend stays yours
connect once, add what matters
Install a framework package or use the core library. Add analytics in the shared layout, then place content and widgets where they belong. No application backend or database to operate.
---
import { Comments, Reactions } from "@jamwidgets/astro";
---
<article>{post.body}</article>
<Reactions pageId={post.slug} />
<Comments pageId={post.slug} />
built for sites with readers, not traffic charts
Writers with Hugo blogs that have been running for eight years. Independent publishers who don't want to rebuild a Substack with their own domain. Indie marketing sites that just need a contact form that actually catches spam. Startup blogs that want comments without handing traffic to a vendor's JS monolith.
You get a light CMS and an operating view of submissions, subscribers, comments, and post performance. Your static frontend remains the source of presentation; Jamwidgets runs the stateful work behind it.
give your next post somewhere to lead.
Start with one site for free. Add publishing automation, more sites, and higher audience limits when the work grows.
keep the vibe; outsource the plumbing