Blog/Why I Built Ping
·4 min read

Why I Built Ping — A Free Status Page for Solo Developers

launchindie hackinguptime monitoring

I've been shipping side projects for years. Every time I launch something, I hit the same wall: “How do I know if it's still running?”

The problem with existing tools

I tried all the usual suspects. UptimeRobot gets the job done but the free tier feels limiting and the UI is stuck in 2015. Better Uptime is beautiful but starts at $20/month — not exactly side-project friendly. Datadog? PagerDuty? Statuspage.io? Those are built for teams with dedicated SREs, not solo devs juggling a day job and a side hustle.

What I wanted was dead simple: monitor my endpoints, tell me on Slack when something breaks, and give me a clean status page I can point users to. That's it. No 47-page docs. No YAML config files. No “contact sales.”

So I built my own free status page

Ping is the uptime monitoring tool I always wanted. Here's what it does:

  • 30-second checks — your endpoints get pinged every 30 seconds, so you know within a minute if something goes wrong.
  • Instant Slack alerts — the moment something goes down, you get a message in your Slack channel. No checking dashboards, no email noise.
  • Public status pages — beautiful, branded status pages you can share with your users. No more “is it just me?” tweets.
  • Incident management — post updates during outages. Keep your users in the loop without scrambling.

Built for indie hackers, not enterprises

Ping is intentionally simple. There's no 14-day trial that suddenly asks for your credit card. There's no feature matrix with 47 rows. The free tier gives you one monitor with 30-second checks, Slack integration, and a public status page. That's enough for most solo projects.

If you're running a micro-SaaS and need to monitor more endpoints, the Pro plan is $9/month — not $99/month, not “custom pricing.” Nine bucks. Less than your coffee habit.

The stack (for the curious)

Ping runs on Next.js with PostgreSQL, deployed on Vercel. The monitoring engine runs as a cron job that checks your endpoints every 30 seconds. Alerts go through Slack's webhook API. The whole thing is lean — no Redis, no queue workers, no Kubernetes clusters. Just a Next.js app doing its job.

I built it this way because I think monitoring tools should be as reliable as the things they're monitoring. The simpler the architecture, the fewer things that can break.

What's next

I'm shipping Ping in public. Here's what's on the roadmap:

  • Multi-region checks — ping from multiple locations to avoid false positives
  • Email & webhook alerts — not everyone lives in Slack
  • Custom domains — status.yourapp.com instead of our subdomain
  • Response time graphs — see trends, not just up/down

Try it out

If you're a solo dev or indie hacker running any kind of web service, give Ping a shot. Set up your first monitor in 30 seconds, free. No credit card, no BS.

Got questions or feedback? I'd love to hear from you. Drop a comment on Hacker News or r/SideProject. Building in public means building with you.