PulseKeep - Self-Hosted Uptime Monitor With a Status Page That Doesn't Look Like 2009
Uptime Kuma is great until you need Slack alerting, PagerDuty routing, and a branded status page that doesn't embarrass you in front of clients. PulseKeep is a Docker-deployable uptime monitor plus hosted status pages for teams who want self-hosted simplicity but enterprise-grade polish.
Difficulty
intermediate
Category
Developer Tools
Market Demand
Very High
Revenue Score
8/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
6/10
Validated by Real Pain
— seeded from real developer complaints
SRE and DevOps folks on Hacker News repeatedly describe being stuck between free but unmaintained self-hosted tools and expensive cloud monitors — they want something self-hostable with real integrations and are openly willing to pay for a managed tier that removes the ops burden.
What is it?
DevOps teams are stuck between Uptime Kuma (free but janky integrations) and UptimeRobot/Pingdom (expensive and cloud-only). PulseKeep ships as a single Docker image with a clean Next.js dashboard, pre-wired Slack and PagerDuty webhooks, and a public-facing status page builder with custom domains. The $99/month managed cloud tier removes the self-hosting burden entirely for teams who want the aesthetic without the ops. Why buildable now: Docker deployments are trivial, Vercel hosts the managed tier, and Supabase handles multi-tenant data cleanly.
Why now?
Uptime Kuma hasn't had a major update in 18 months and the GitHub issues are full of PagerDuty and managed hosting requests — the gap is fully validated and open.
- ▸HTTP, TCP, and keyword uptime checks with sub-minute polling intervals.
- ▸One-click Slack and PagerDuty alert routing with configurable escalation rules.
- ▸Drag-and-drop status page builder with custom domain support and incident history.
- ▸Managed cloud tier with zero-config onboarding and Stripe billing built in.
Target Audience
Mid-market DevOps and SRE teams at 10-200 person startups, roughly 80k teams globally using self-hosted monitoring tools.
Example Use Case
A 30-person SaaS startup's head of DevOps pulls the Docker image, configures 12 monitors in 10 minutes, connects PagerDuty in one click, and shares a branded status page with customers — all without touching Grafana or paying $300/month for Pingdom.
User Stories
- ▸As a DevOps lead, I want a self-hosted uptime monitor with PagerDuty routing, so that I can replace a $300/month SaaS tool without managing Prometheus.
- ▸As a startup CTO, I want a branded public status page, so that customers see incidents before tweeting at us.
- ▸As a solo SRE, I want a managed cloud option, so that I get self-hosted simplicity without running my own server.
Done When
- ✓Monitor creation: done when user adds a URL, sets check interval, and sees a green badge appear within 60 seconds
- ✓Slack alert: done when user kills a monitored URL and receives a Slack message within 2 minutes
- ✓Status page: done when user shares a /status/[slug] URL and an unauthenticated visitor sees real-time monitor states
- ✓Stripe billing: done when user enters card, is charged $99, and gains access to managed tier dashboard.
Is it worth building?
$99/month x 50 managed customers = $4,950 MRR at month 4. Assumes 5% conversion from self-hosted users who star the GitHub repo.
Unit Economics
CAC: $15 via GitHub organic and Reddit posts. LTV: $1,188 (12 months at $99/month). Payback: under 1 month. Gross margin: 85%.
Business Model
Free self-hosted Docker image. $99/month managed cloud tier. $199/month for teams with SSO and SLA reports.
Monetization Path
OSS repo drives discovery, managed hosting converts via friction of self-hosting ops, team plan upsells at $199/month.
Revenue Timeline
First dollar: week 4 via first managed tier customer. $1k MRR: month 3. $5k MRR: month 6.
Estimated Monthly Cost
Vercel: $20, Supabase: $25, Resend: $10, PagerDuty API: free tier, Stripe fees: ~$30 at $1k MRR. Total: ~$85/month at launch.
Profit Potential
Full-time viable at $5k-$10k MRR with 50-100 managed customers.
Scalability
High — managed tier scales horizontally on Vercel, open-source version drives organic GitHub stars and word-of-mouth.
Success Metrics
500 GitHub stars in month 1. 10 managed customers by month 2. 85% month-2 retention.
Launch & Validation Plan
Post the GitHub repo to r/selfhosted and r/devops, offer managed tier free for 30 days to first 20 signups, collect feedback before charging.
Customer Acquisition Strategy
First customer: post Docker image to r/selfhosted with a comparison post vs Uptime Kuma — offer free managed tier for 60 days to commenters who DM. Ongoing: GitHub repo SEO, ProductHunt launch, Hacker News Show HN post, DevOps Twitter/X.
What's the competition?
Competition Level
Medium
Similar Products
Uptime Kuma (no managed tier, poor PagerDuty integration), UptimeRobot (cloud-only, no self-host), Freshping (no OSS option) — PulseKeep fills the self-host-plus-managed hybrid gap.
Competitive Advantage
Self-hostable OSS with a polished managed option — neither fully free nor fully SaaS, hitting the exact gap mid-market DevOps teams complain about.
Regulatory Risks
Low regulatory risk. GDPR data deletion endpoint required for EU customers.
What's the roadmap?
Feature Roadmap
V1 (launch): HTTP checks, Slack/PagerDuty alerts, status page, Docker image. V2 (month 2-3): Custom domain status pages, incident timelines, email digests. V3 (month 4+): Synthetic browser checks, RBAC, SSO.
Milestone Plan
Phase 1 (Week 1-2): Schema, cron checker, Slack alerts shipped and testable locally. Phase 2 (Week 3): Status page live, Stripe billing working, Docker image published. Phase 3 (Month 2): 10 managed customers paying, GitHub repo at 300 stars.
How do you build it?
Tech Stack
Next.js, Node.js cron, Supabase, Docker, Resend, PagerDuty API, Slack Webhooks, Stripe — build with Cursor for backend logic, v0 for dashboard UI components
Suggested Frameworks
Next.js App Router, Supabase Postgres, node-cron
Time to Ship
3 weeks
Required Skills
Next.js, Docker, cron jobs, Supabase RLS, Stripe billing.
Resources
Uptime Kuma GitHub for inspiration, Docker docs, Supabase multi-tenant guide, PagerDuty API docs.
MVP Scope
app/page.tsx (landing + hero), app/dashboard/page.tsx (monitor list), app/api/checks/route.ts (cron trigger endpoint), app/api/alerts/slack/route.ts (Slack webhook handler), app/status/[slug]/page.tsx (public status page), lib/db/schema.ts (Drizzle schema), lib/monitor.ts (HTTP check logic), components/MonitorCard.tsx (status card UI), components/StatusBadge.tsx (up/down indicator), Dockerfile (single-image deploy), seed.ts (demo monitors), .env.example (required env vars)
Core User Journey
Pull Docker image -> configure first monitor -> trigger test alert -> share status page URL -> upgrade to managed tier.
Architecture Pattern
Cron job -> HTTP check -> result stored in Supabase -> threshold breached -> Slack/PagerDuty webhook fired -> status page reads latest state from Postgres.
Data Model
User has many Workspaces. Workspace has many Monitors. Monitor has many CheckResults. Workspace has one StatusPage. StatusPage has many Incidents.
Integration Points
Stripe for managed tier billing, Resend for email alerts, Slack Webhooks for alerting, PagerDuty API for escalation, Supabase for data, Vercel for managed hosting.
V1 Scope Boundaries
V1 excludes: mobile app, SMS alerts, synthetic browser testing, white-label reselling, team RBAC.
Success Definition
A DevOps engineer at a company the founder has never heard of finds PulseKeep on GitHub, self-hosts it, upgrades to managed tier, and pays month two without contacting support.
Challenges
Distribution is the hard problem — the OSS community expects free everything, so converting self-hosters to $99/month requires a clear managed-tier value prop beyond the Docker image.
Avoid These Pitfalls
Do not build SSO or SAML before 10 paying customers — it will eat 2 weeks. Do not let the OSS version be so good that no one upgrades to managed. Finding the first 10 paying customers takes 3x longer than shipping — budget time accordingly.
Security Requirements
Supabase Auth with Google OAuth, RLS on all workspace-scoped tables, 100 req/min rate limit per IP, all monitor URLs validated against SSRF blocklist.
Infrastructure Plan
Vercel for Next.js frontend and API routes, Supabase for Postgres and auth, Cloudflare for CDN and DDoS, GitHub Actions for CI, Sentry for error tracking — total infra ~$85/month at launch.
Performance Targets
100 DAU and 5,000 check writes/day at launch. API response under 300ms. Status page load under 1.5s. Check results cached in Supabase with 30-second TTL.
Go-Live Checklist
- ☐Security audit complete
- ☐Payment flow tested end-to-end
- ☐Sentry error tracking live
- ☐Vercel monitoring dashboard configured
- ☐Custom domain with SSL set up
- ☐Privacy policy and terms published
- ☐5 beta DevOps users signed off
- ☐Rollback plan documented
- ☐Show HN and r/selfhosted launch posts drafted.
First Run Experience
On first run: 3 demo monitors (api.example.com, status.example.com, db.example.com) pre-seeded with 24h of fake check history. User can immediately view the status page at /status/demo without any login. No manual config required: demo mode works with no env vars set beyond NEXT_PUBLIC_SUPABASE_URL.
How to build it, step by step
1. Define Drizzle schema for Monitor, CheckResult, StatusPage, Incident, and User tables. 2. Scaffold Next.js app with Supabase auth and Google OAuth. 3. Build node-cron HTTP check runner that writes results to Supabase. 4. Build Slack webhook alert handler triggered on status change. 5. Build PagerDuty alert integration with deduplication. 6. Build monitor dashboard page showing up/down status cards. 7. Build public status page at /status/[slug] reading from Supabase. 8. Build Stripe billing for managed tier with Stripe Checkout. 9. Write Dockerfile and docker-compose for self-hosted deployment. 10. Verify: pull Docker image locally, create a monitor, kill the target URL, confirm Slack alert fires and status page updates.
Generated
April 20, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.