Badge
A small image for your own site, showing how many other sites link to it. One command mints it, one line of HTML wears it, and the number is served — so it stays current without you touching the page again.
01Mint it
craft burn counts the referring domains on the property you already have selected and
prints the HTML to paste. Nothing to sign up for beyond the Google account craft login
already uses.
$ craft burn ⛏ counting the sites that link to anacraft.dev over the last 30 days… ★ 12 sites link to anacraft.dev · osaka-jade theme paste this where you want the badge: <a href="https://anacraft.dev/burn.html"> <img src="…/functions/v1/burn/<id>.svg" alt="12 sites link to anacraft.dev" height="20"> </a>
02Pick a palette
The badge wears the dashboard's own themes. --theme takes any of them, and the colours
are resolved when the badge is minted rather than when it is served — so a palette added to the binary
works the day it ships.
$ craft burn --theme tokyo-night
03What the number counts
Distinct referring domains over the last thirty days. A visit counts when somebody arrived by
following a link from another site — GA4's referral medium. Search engines, ad campaigns
and people typing your address in are all traffic, and none of them is a site linking to you, so none
of them is counted.
One site counts once, however GA spelled it: News.YCombinator.com,
news.ycombinator.com and news.ycombinator.com/item are one link, not three.
04A chiclet, and what became of it
If you kept a blog in 2007, you had one of these. FeedBurner's counter — everybody called it the chiclet — was a small orange button in the sidebar with a number on it, and the number was how many people subscribed to your feed. Sidebars were full of them, stacked with the Creative Commons badge and the Technorati rank and a button that said this site was best viewed in Firefox.
It mattered more than it should have. A chiclet reading 4,812 readers was a flex, and one reading 7 was an act of honesty that made the whole sidebar likeable. Either way it was your number about your site, shown because you decided to show it — which is a different thing from a follower count on a platform that owns both the count and you.
FeedBurner was four people in Chicago in 2004. Google bought it in 2007 for a figure everyone quotes as around $100 million; one of its founders, Dick Costolo, later went off to run Twitter. And then it was left alone for a very long time. The API was retired, AdSense for Feeds was switched off, the email service finally closed in 2021, and the chiclets sat in a decade of sidebars showing less and less until most of them showed nothing at all.
The number nobody could explain
The complaint that dogged it the whole time was that the count would not sit still. People would watch it halve overnight and write posts asking what they had done wrong. The answer was that the number was assembled from what feed readers reported when they happened to poll — so a big aggregator having a quiet day took a slice of your subscribers with it, and gave them back tomorrow.
The end of that story is the best illustration of it. When Google Reader shut down in 2013, chiclets across the entire web fell off a cliff on the same afternoon, because Reader had been doing most of the counting all along. Thousands of people watched their audience appear to vanish, and their audience had not gone anywhere.
So this one is boring on purpose
That is the lesson worth inheriting, and the reason the window here is a month wide. A number that visibly jitters reads as broken whatever it says, and a broken-looking number gets taken off the page — which is the one failure mode a badge cannot survive.
Thirty days of distinct referring domains moves slowly by construction. The badge serves the last count rather than computing one per request, so it cannot flicker between two answers on two reloads either. For a number sitting on somebody's homepage, boring is the highest compliment available.
05Keeping it current
The count is published when you run the command, not scraped from you on a schedule — anacraft has no standing access to your Analytics and this is not the feature that would introduce it. Re-run to recount; the badge already on your page picks it up without an edit.
# same badge, same URL, fresh number $ craft burn --refresh # or let cron keep it warm — weekly is plenty for a 30-day window 0 7 * * 1 craft burn --refresh
The badge holds its last number in between, so a machine that is off for a week shows last week's count rather than a zero.
06What it costs you, and what it costs us
Nothing, and it is not part of the subscription. A badge exists to be seen by people who have never heard of anacraft — charging for the privilege of putting our name on your site would be charging in the wrong direction.
Being straight about the one trade: the badge is an image served from our endpoint, so loading it reaches us the way loading any hosted image reaches its host. We set no cookie, the badge carries no script, and the row behind it holds a number and four colours — but your visitors' requests do arrive here, and a badge that claimed otherwise would be lying about how images work. If that is not a trade you want, do not wear the badge: nothing else in anacraft does this.
Your Analytics stays where it is. The counting happens on your machine, and what leaves it is one integer.
07If the badge is blank
An unknown id renders as a plain anacraft pill rather than a broken image or a zero —
somebody else's page is not the place to display our errors. If you see that, the row is gone or the URL
is wrong; craft burn prints the current one.
A count of 0 is a real answer: nothing has linked to you in thirty days. It is also the
number most worth watching change.