A year of openstatus: what we learned | openstatus

A year of openstatus: what we learned

May 29, 2026 | by Maximilian Kaske | [company]

A year ago we published Product Strategy - A Reality Check. It was an honest post to write: ~7,000 GitHub stars, no clear answer on what to charge for, a "self-hosted" story that didn't actually work, and a head full of features we kept not shipping (RUM, on-call, incident management).

This post is a year's receipt. What we shipped between then and now, what we killed, what we got wrong, and the people who helped us see what we couldn't. It's not a highlight reel. It's the version we'd want to re-read in a year and either nod at or wince at. Less polished essay, more honest digest: shippable as a talk, a post, or just a conversation we wanted to write down.

Who's this post for? Primarily for us, a checkpoint for next year. But we figured it could live here in the blog, so we get to share it with you too.

Spoiler from the original Reality Check still applies: it's been hard, really hard.

The story in one paragraph

12 months ago we partnered with Emily Omier to grill us on positioning. We killed the ideas of RUM, on-call, and incident management (we never actually shipped them, they just took up space in our heads), dropped synthetic-monitoring-as-headline, partnered with Alex on design, rebuilt the dashboard, rebuilt the status page, doubled down on MDX-driven SEO, decoupled our monorepo, migrated our entire API to ConnectRPC, and went deep on AI ( skills repo, MCP server, CLI, chat assistant, Slack agent). In March 2026 we brought in Shane O'Connor to help us on distribution. We started posting on LinkedIn for real, stood up a subreddit, automated LinkedIn connections to widen our network reach, rechecked our ICP, and updated the homepage hero around compliance. We also welcomed Colin, our first intern, finally not a two-person team. And the community on Slack and Discord became one of our favourite parts of the work. Today: focused product, ~1M Google impressions in the last 3 months, a real distribution motion, a defensible wedge. This is the honest version of how we got here, including what didn't work.

Section 1: Where we were

March 2025. We didn't feel particularly unique. We were chasing stars instead of talking to the people actually using the product. We were lost.

For a visual receipt: v1.openstatus.dev. The old site is still live, frozen, as a snapshot of where we were (dated from early Dec. 2025). Useful both as a before/after and as a reminder of how easy it is to drift if you're not paying attention.

Today, May 2026: same product category, same two founders, plus Colin, our first intern. Different company underneath. There's one chart that frames the whole year, but we've saved it for the numbers section, where it belongs.

Section 2: The shift

The mental-model change, in two parts.

What we admitted to ourselves

What we did about it

The line: We thought our problem was technical. It was strategic. We needed someone outside the team to ask the questions we were avoiding. Emily named the product. Alex shaped the look. Shane named the distribution problem we'd been dodging.

Section 3: The pillars

The funnel frame. This is the spine. It came out of the year-in-review post, and it explains the chart.

Users search for a Status Page → they see it's Open Source → they stay for the bundled Uptime Monitoring.

Each pillar serves one part of that funnel. They're not parallel features. They're a causal chain. Below them sits a fifth pillar (architecture/AI) that we used to think was infrastructure and now think is product.

Funnel stage Pillar What shipped
1. Search → find us Landing / SEO MDX engine, free tools, compares, guides, opinion pieces
2. See it's open source OSS credibility Self-hosted release, skills repo, CLI, MCP server, Terraform provider
3. Stay for the dashboard Dashboard Full rebuild, Linear-inspired DX, decoupled app
4. Communicate during fires Status Page Full rebuild, Theme Explorer, importers, i18n, components, embeds
0. The substrate underneath Architecture & AI services consolidation, ConnectRPC, Slack agent, Chat Assistant, audit log

Pillar 1: Landing / SEO

The boring one. The one that worked.

Before: Pretty landing, thin content. Listed features, not problems.

Shipped:

Result: ~ 650K Google impressions over 16 months (Oct 2023 – Feb 2025) → ~1M impressions and ~19k clicks in the last 3 months alone (Feb 16 – May 17, 2026, per GSC). From ~40K impressions/month to ~333K/month, a ~8× jump in rate.

The lesson: We built free tools because they ranked. They rank because they're useful. They're useful because we'd use them ourselves. And opinion pieces beat feature pages. Status Pages Are Politics did more for positioning than any landing copy we wrote.

Pillar 2: OSS credibility

The half-truth we fixed.

Before: The Reality Check post put it bluntly: "We're not great at maintaining our self-hosted product."

Shipped:

The community side of OSS: Feature requests turn into PRs. Bug reports turn into same-day fixes. People drop into Discord to ask a setup question and stick around to answer the next one. For an open-source project that's the whole point: the code is open, and so is the room around it.

Why this pillar matters for the funnel: without a real self-hosted option, users find us → see "OSS" → spot the half-truth → leave. With it, they trust the project and decide they want the hosted version anyway.

Pillar 3: Dashboard

Before: Outdated, noisy, still built on the very first hype. People stayed despite the dashboard, not because of it.

Shipped: Full rebuild ( blog: We Are So Back) on the second anniversary of openstatus. Tinybird-inspired sidebar navigation. Right-hand context drawer borrowed from Axiom. Cleaner data viz, with timing-phase charts, uptime bars, degraded overview cards, built on the data we'd been collecting in Tinybird and never displaying.

Why it mattered: existing-customer retention. Activation got cleaner. Status-page customers who'd never explored uptime monitoring started using it. The third step of the funnel stopped being embarrassing.

The line we keep: The products you use, inspire the products you build. Linear, Tinybird, Axiom, Resend,... Stand on the shoulders of taste you trust.

Pillar 4: Status Page

The pillar that became the strategy.

Before: Status page was "the thing at the end of monitoring." Outdated. Hard to make yours.

Shipped:

The strategic shift:

Users search for a Status Page → they see it's Open Source → they stay for the bundled Uptime Monitoring. The entry point isn't the monitoring; it's the Status Page.

That insight reorganized how we think about the product. The 2026 plan: "Stripe for Incidents." ChatOps-first, API-first, primitives over rigid workflow. Slack and Discord apps. Deep integrations. Move upstream toward incident management later, not by building it ourselves but by being the platform others build on.

Pillar 5: Architecture & AI (the substrate)

We used to file this as plumbing. It's product.

Architecture work we did "before" we shipped anything new:

AI surface area we shipped:

The framing we landed on:

ClickOps · ChatOps · GitOps. The trifecta is complete.

Dashboard for clickers, chat for talkers, Terraform for committers. Same services layer under all three. Same audit log. Same scopes.

The honest line: We're not adding AI to look modern. We're using it because the actual workflow demands it. Status pages are a place where "don't make me leave my terminal" is the whole product.

Section 4: The outbound motion (added March 2026)

The pillars above are the inbound funnel: how strangers find us. By Q1 2026 it was clear we'd built a system that pulled people in but didn't reach out to anyone. As devs, we'd rather ship than DM. Shane changed that, not by handing us a full GTM operation, but by getting us to actually show up.

This is the newest part of the story (~2 months old at time of writing). Too early for a verdict. Worth writing down anyway.

What we actually did

What changed because of it

Two months is too short for a verdict. The fact that we're showing up for the work at all is the change.

Section 5: A few numbers for comparison

We're wary of bragging with numbers we made up ourselves. So we lean on the ones we don't control: GitHub stars, Google Search Console impressions, follower counts pulled straight from each platform. Not perfect, but at least nobody at openstatus gets to put a thumb on the scale.

Here they are, before and after.

Metric Mar 2025 May 2026 Change
GitHub stars ~7,000 ~8,700 +24%
GitHub followers 128 201 +57%
Google impressions (rolling) ~650K over 16 mo ~1M over 3 mo ~8× rate

And the community across channels (useful for us to look at, so probably useful to share):

Channel Mar 2025 May 2026
LinkedIn 197 362
Bluesky 746 904
X / Twitter 962 1,406
Discord 359 392
YouTube 11 21

The chart that frames the whole year. Plot paid subscriptions from Jul 2023 → May 2026 and there's one clear elbow: August 2025. Two things happened that month. We published Product Strategy - A Reality Check on July 31, and we shipped We Are So Back on August 3, the new-dashboard launch that kicked off the entire monorepo rollup (web / dashboard / status-page split). Words on the page and an app under the hood, in the same week. We can't prove the causation, but that's the month everything started compounding.

Section 6: Lessons

The actual learnings, year over year. Some of these are old hats; the value is in the receipts now.

1. You cannot self-diagnose your positioning. Or your distribution. Bring someone in to do both.

From the Reality Check post: "If you know what makes you special, you can lean into it." We didn't know, until Emily made us. A year later we made the same move on distribution: brought Shane in to shape the messaging, run the LinkedIn motion, and make us post. Same pattern, different bottleneck. The thing you can't see is the thing costing you the most.

2. Shipping less is a feature.

From the Reality Check post: "We have reduced the number of new features shipped over the last months, on purpose." Focus by subtraction. We killed RUM, on-call ambitions, incident management ambitions, synthetic-as-headline. The product got clearer every time we killed something.

This matters more in the age of AI, not less. When you can generate a feature, a UI, or a whole subsystem in an afternoon, the constraint stops being can we build it and becomes should we. It's never been easier to bloat the codebase and the interface with things nobody asked for. Subtraction is the discipline that no longer comes for free.

3. Consolidate before you add.

The biggest unlock of 2025 wasn't a feature. It was a refactor we'd been postponing for a year. Splitting apps. Pulling CRUD into one package. Migrating two APIs into one ConnectRPC schema. "Sometimes you have to take a few steps back to take more steps forward." Every feature shipped after the refactor took half as long.

4. Be honest about the gap between your OSS story and your reality.

If you market "open source" but your self-host story is held together with duct tape, the people who care most will notice first. We let that gap sit for too long. Closing it (actually shipping a self-hosted release, writing down what was broken in public) did more for trust than any feature.

5. The vanity metric and the metric you actually care about decouple.

Stars grew by about a quarter; the work underneath grew at a very different rate. At some point the community-love metric and the metric you actually care about stop moving together. Notice when. Stop optimizing the wrong one.

6. Not doing the outreach is the biggest trap, and you won't fix it alone.

We're devs. We're born to build, not to DM people on LinkedIn. The trap is staying in the "just one more feature and the rest will sort itself out" loop forever. We sat in that loop for years. What broke us out of it wasn't willpower. It was collaborating with Shane to set up the motion, point us at the right lists, and force a posting cadence. The founder still has to do the talking. But you probably can't be the one to schedule it, structure it, or hold yourself accountable to it.

6a. Recheck your ICP every now and then. The honest version, not the deck version.

Working with Shane forced us to redo the who is actually paying us, what do they share, where do they hurt exercise. The answer wasn't "enterprises" and it wasn't "hobbyists." It was small/mid teams with API surface area and a compliance shadow growing over them. That single redefinition reorganized the homepage hero, the use-case pages, and how we talk in DMs. The ICP isn't a slide; it's a lens, and it goes out of focus faster than you think.

6b. Showing up in the community is undervalued.

We have a Slack and a Discord. Used to feel like a chore; now feels like the best part of the week. Replying fast and shipping fixes fast is, apparently, rare enough that users tell us about it, repeatedly, unprompted. It's also one of the few advantages a tiny team has over a big competitor. Don't outsource it. Don't queue it. Don't treat it like support. Hang out there.

7. Design for the agent from day one.

--json, structured errors, deterministic flags, MCP from the start, write-tools that pause for human approval, audit-logs that cover the agent same as humans. These aren't bolt-ons; they're the foundation. Our Slack agent and chat assistant ship feature-complete in part because the CLI, the API, and the services layer were already built right.

8. Opinion content beats feature content.

Status Pages Are Politics did more for positioning than any "features" page. Nobody should hand-code a data table in 2026 drove more conversation than the changelog around it. Our Product Hunt Launch: The Brutal Reality was a stronger founder signal than any positive case study. A take with skin in it travels further than a list of capabilities.

8a. Treat SEO like a discipline. Check the numbers. Rewrite, don't restack.

We look at GSC regularly (not religiously every week, but often enough to catch a page slipping). We don't publish a changelog for every new improvement. We publish a page per ICP profile, and then we rewrite the ones that lose position instead of stacking new posts on top. Proper JSON-LD (How-To, FAQ) where it fits. Topical clusters that link to each other. The boring stuff.

9. Distribution > novelty.

Free tools that rank. Importers from your competitors. Notification channels into wherever the user already lives: Slack, Discord, Telegram, WhatsApp, Google Chat, Teams, ntfy. Migration friction is a moat; we tore it down on our side and built it on theirs.

10. Stand on the shoulders of taste you trust.

shadcn for components. Tinybird for analytics. Linear for navigation. Axiom for context panes. Supabase for opinionated polish. The products you use, inspire the products you build. Don't reinvent taste. Borrow it, attribute it, and spend your originality on the actual product.

11. Write things down, even badly, and you'll thank yourself later.

We're honestly still not great at narrating what's going wrong in real-time. But every "Reality Check", every "Vision 2025", every year-in-review post, every retro like this one: they pile up into something we can actually look back on. The act of writing it down isn't always the magic; the archive is. A year from now we'll re-read this post and either nod or wince. Either way, the next move gets clearer. And, if it's at all useful to you, we share it as we go.

12. Status-page-first wasn't obvious until we measured it.

We assumed users came for monitoring. They came for the status page and stayed for the monitoring: the funnel insight we wrote up in the 2026 roadmap post. The entry point isn't always the product you're proudest of. Look at the funnel, not the spec sheet.

13. The hero you talk to on the homepage isn't always the user you think.

For years our headline was some flavour of "open-source uptime monitoring and status page." Even v1.openstatus.dev was an iteration of that ("Showcase your uptime with a status page"). All true, all accurate, all aimed at the developer who was already going to like us. The new hero leads with the compliance story, because that's the question on the other side of the developer's desk. The dev still adopts the tool, but the headline needs to also answer the question their team lead is being asked. Write to that reader.

Closing thought

Steal from the Reality Check post:

What Emily really gave us isn't a positioning canvas. It's a method. When you're stuck, find someone who'll ask the questions you're avoiding.

That's the through-line. 12 months of openstatus, in one sentence: the work was always strategic, the bottleneck was always honesty, and the lever was always someone outside our own heads. Emily made us name the product. Alex made us redesign it. Shane made us go out and tell people about it. Colin made us a team of three. Moulik made us realize the community is here to ship. And the people in our Slack and Discord (the ones who file the GitHub issues, suggest the integrations, and tell us when we got something right) made the whole thing feel worth doing.

One nice thing to end on. A year ago, all our work with Emily was async, over a screen (that's even how the Reality Check described it). In May 2026 we finally met her in person, in Paris, at the Open Source Founders Summit she co-organizes: two days with other people building open-source companies, on the same community-vs-customers questions she first asked us. A year after the Reality Check, that felt like the circle closing.

PS: the best week of work is still the one where we ship a fix the same day a user asks for it. That hasn't changed.

PPS: a small admission about why we can even draw this Mar 2025 → May 2026 comparison. When we went through the acquisition conversation last year, every number got bookmarked. Stars, followers, traffic, ARR, churn, retention, all frozen at that moment. That snapshot is what made this whole retrospective possible. So we're doing it again: bookmarking today's numbers (the ones in the tables above, plus the private ones in the appendix) as the next anchor. Whenever the next comparison happens, that's where we'll start from.

So: what are you avoiding?