Skip to content

Page — Home

Reaction buttons that don't need JavaScript on your site.

Paste a tiny HTML form into a WordPress Custom HTML block, a Ghost HTML card, a static-site template, or any page you can edit by hand. Readers click. Counts go up. Nothing else runs on your page.

No accounts to make. No scripts to load. No cookies on your readers. If your host lets a raw <form> survive, Reaction Count works there.

Footprint
No JavaScript on your page
Reader privacy
No accounts, no cookies
Cost
Free, forever

01 — Where it fits

Built for the small web and the docs page.

If you can paste HTML into a post, you can ship a reaction button. It is especially good in the places where every other feedback widget is awkward to install.

Self-hosted blogs

WordPress (Custom HTML block), Ghost (HTML card), and any CMS that lets a raw HTML form survive the editor. No plugin install. No script-tag wrestling.

Documentation footers

The "Was this helpful?" button at the bottom of a docs page. Drop it into Astro Starlight, Docusaurus, Hugo Book, or a hand-built doc site, and read what your readers found unclear.

Static sites

Astro, Hugo, Eleventy, Jekyll, Zola, plain HTML. Counts are keyed to the page URL, so a button on example.com/welcome keeps its tally through theme rebuilds, CDN swaps, and framework rewrites — as long as the URL doesn't move.

Privacy-conscious blogs

No cookies on your readers. No third-party scripts. The reader's IP is hashed and salted per page and time window — enough to let someone change their mind, never enough to track them across pages or sites.

02 — The specifics

Small details that matter once you try to ship one.

Plays nicely with your site
Because nothing actually runs on your page, there's nothing to clash with your theme, your other plugins, or your blog host's safety filters.
Many buttons on one page
Each form gets a unique rcdc-… ID, so a sidebar poll, a footer "helpful?" button, and an inline thumbs-up can all live on the same page without colliding. See the poll sample.
Your CSS, your call
The form is plain HTML with class hooks you can style any way you like. See the same button in three aesthetics on the styling sample.
Readers change their minds
Click again to undo a reaction. Click a different option to switch. The hashed IP is what makes this work — and the only reason it exists.

03 — How it works

A stylesheet does the counting.

Your page has two things on it: a plain HTML form and a <link> to counts.css. The form sends clicks to the API. The stylesheet paints the numbers into the buttons.

Because the count lives in CSS, your site never runs any JavaScript to show it. That means it works inside Markdown posts, on platforms that strip <script>, and on pages whose host filters JavaScript widgets out before they ever render.

Counts are keyed to the URL of your page, so the same button keeps the same count across theme changes, redeploys, and CDN swaps — as long as the URL doesn't move.

04 — Get started

From zero to a live button.

Pick a template, set your page URL, copy the HTML into your post or template. That's the whole job — no scripts, no accounts.