real products, real bills, one lesson each

Built with Boring Stack.

2 shipped products running on a stack their builders can read end to end. Costs are self-reported. Badge views are measured — that's the number we can actually check.

  1. Borela

    Borela $7.84/mo

    • go
    • sqlite
    • litestream
    • caddy
    • systemd
    • hetzner
    • r2

    The whole control plane — marketing, magic-link auth, dashboard, the locked v1 agent protocol, a dev mailer — is one Go binary and one SQLite file. Nothing about it is distributed, and the restore drill runs every five minutes.

    @boringstack listed 2026-08-22

  2. Boring Stack

    Boring Stack $5.96/mo

    • go
    • sqlite
    • caddy
    • systemd
    • hetzner
    • r2

    This site's own backend ships no backup tooling at all. borela-agent already runs on the box, so it snapshots the SQLite file to R2 and the restore drill comes free. Running Litestream alongside it would have meant two sets of credentials to rotate and one more thing to explain.

    @boringstack listed 2026-08-22

costs are self-reported and unverified. badge views are measured by api.boringstack.org through 2026-08-22, and are badge fetches rather than pageviews — close enough to compare listings against each other, not an audited number. previews are each site's own og:image, or a screenshot of its homepage, fetched once and served from this domain — your browser never calls out to a listed site.

The badge

Built something on this stack? Paste this anywhere on your site. The footer is traditional.

<a href="https://boringstack.org/showcase.html">
  <img src="https://api.boringstack.org/badge.svg"
       alt="Built with Boring Stack" width="186" height="28" loading="lazy">
</a>

It renders like this, and follows your visitor's light or dark preference:

Built with Boring Stack

Once your project is listed you get a per-project URL — /badge/<your-slug>.svg — which is the same image but attributes views to your listing. We'll send it with your confirmation email.

What the badge records

When a browser loads the badge, api.boringstack.org records exactly one thing: the hostname of the page it was loaded fromexample.com, never the path, never the query string — added to a counter bucketed by day.

the unlisted badge is counted the same way, by hostname only. that's how we find projects using it that haven't been listed — and then we email them, once.

List your project

Add it to the showcase

A human reads every submission. We check the badge is live on your site before listing you — that check is the only proof of ownership we have.