Build in public tools: what you actually need
The honest build-in-public stack: where to post, how to show live metrics, and what each layer costs. Fewer tools than you think.
The build-in-public stack is smaller than the listicles suggest. You need three layers: a place to post, a place your numbers live, and a way to spread them. Most of it you already have.
Layer 1: Where you post
X (Twitter) for the #buildinpublic community, LinkedIn if your buyers wear suits, a personal blog for the long-form retros. Free, and you don't need new tools here — you need the posting rhythm.
Layer 2: Where your numbers live
This is the layer people improvise badly. Screenshots go stale, hand-updated Notion pages die after three weeks, and self-reported numbers carry no proof. What you want is a public page wired to the actual sources — GitHub, your payment provider, your uptime monitor — so the numbers stay true without you touching them.
This is the layer infrapage is built for, so here are the real specs, limitations included:
- What it connects to: GitHub (repos, CI, commit activity, releases), revenue via Polar, Stripe, or TrustMRR, analytics via Umami or Google Search Console, uptime via plain URL checks, Uptime Kuma, or Beszel, plus Sentry, Linear, Vercel, Discord, and more — over 30 widget types across 15+ integrations.
- Public/private per widget: each widget is individually visible or hidden, and sensitive metrics can be shown as growth-only ("+12% this month") without revealing the absolute number.
- Verified, not self-reported: metrics pulled from third-party APIs (GitHub, Stripe, Polar, Sentry…) earn a live-verified mark — the closest thing to proof in build-in-public.
- What it costs: building a dashboard is free. Making a page public is a one-time €29 claim — the page stays live forever, no subscription required. Pro (€9/mo) adds private widgets, custom domains, removing the branding, hourly refresh, and page analytics.
- The honest limitations: claimed pages refresh every 12 hours (hourly is Pro). Grafana, Plausible, and GitLab integrations aren't shipped yet — they're on the roadmap, and you can vote on what comes next. If you need deep drill-downs and alerting, that's a monitoring tool's job, not a dashboard's.
- Escape hatch: it's open source (AGPL-3.0) and self-hostable for free — single binary, Docker support, your data on your infrastructure.
The DIY alternative — a static site with embedded badges — works too, and costs only your time. The failure mode is maintenance: every hand-wired integration is something that silently breaks.
Layer 3: How the numbers spread
The multiplier on everything above: don't make people visit your page — put the live numbers where people already are. Every public infrapage widget doubles as a live README badge and a share card for X and LinkedIn. Paste once; the numbers stay live. Milestones (crossing 100 users, €1k MRR) generate their own shareable cards with permalinks, and a weekly recap card summarizes your week-over-week deltas when it's time to post the update.
The short version
Post on one channel, keep your numbers on one live public page, and embed those numbers everywhere you ship. Tools beyond that are procrastination. If you're still deciding what to share in the first place, start with the building-in-public guide — then see how others run their pages, and check the pricing details when you're ready to claim yours.
Related Posts
How to build in public on X (Twitter)
The #buildinpublic playbook for X: what to post, how often, and how to make your numbers verifiable instead of just claimed.
Self-hosted dashboards compared: launchers, monitors, and metrics pages
Homer, Dashy, Homarr, Homepage, Glance, Uptime Kuma — and where infrapage fits. The three categories of self-hosted dashboard, and how to pick the right one for your homelab or projects.
How to build in public: a step-by-step start
A concrete sequence for starting to build in public: pick your metrics, set up a public page, share weekly. No audience required to begin.