Features
What it puts on your page
Nine surfaces, grouped by what they are for. Five of them are a single line you paste into a page you already have; two are pages hosted for you that you link to.
4 surfaces
Publish.
A homepage, a page of links, a short URL, a row of badges for your friends. Somewhere of your own that you hold the keys to.
Short links
Pick a slug or let the server generate one. Update the destination later — the short link keeps working. Hits counted, no visitor profiling.
Pages
A homepage of your own, built from blocks rather than a blank file: text, pictures, free-form HTML, and any widget above dropped straight in.
https://your-host/p/your-slug
Link trees
A hosted, themed page of link buttons. Each button records a click on the way through. Edit the list without losing the counts.
https://your-host/t/your-slug
Banner strips
A hover-grow row of 88×31 badges linking to your friends’ sites. Curate a set in the admin, paste one script tag, done.
<script src="https://your-host/banners/embed.js" data-set="ID" async></script>
2 surfaces
Connect.
Rings of sites a person curates, and a book visitors can sign. Discovery and conversation without an algorithm in the middle.
Webrings
Browse and join curated rings of indie sites. Next/prev/random navigation that works without JS, and join requests a person reads before anything appears.
Guestbooks
The sign-my-book widget, back from the dead. Visitors leave a message; nothing appears until you approve it. Rate-limited and honeypotted.
<script src="https://your-host/guestbooks/embed.js" data-guestbook="ID" async></script>
3 surfaces
Signal.
A counter, a poll, a line saying what you are up to. Enough to show the place is lived in, and nothing that profiles whoever visits.
Hit counters
The odometer, as a plain image — no JavaScript at all. Counts unique visitors once per IP per day, so a refresh does not inflate it.
<img src="https://your-host/counters/ID.svg" alt="visitor count">
Polls
Ask one question, get bars back. One vote per visitor, and the results stay hidden until they have voted. Editing options preserves the votes.
<script src="https://your-host/polls/embed.js" data-poll="ID" async></script>
Status pills
A small “what I am up to now” line — emoji, text, and how long ago you changed it. You curate it; the public only reads it.
<script src="https://your-host/status/embed.js" data-status="ID" async></script>
Under it
Five C++ servers and a box you own
Every surface above is served by one small process on your own hardware, behind one nginx vhost. The components, the default ports and what running it needs are on the architecture page.