Naptown Labs

Uptime Monitoring
Made Simple

Monitor your endpoints, get instant alerts when things go down, and share beautiful status pages with your users. Free to start.

statusping.naptownlabs.dev
14
API Routes
7
DB Tables
5
Blog Posts
60s
Min Interval
Everything you need to stay on top of uptime

Built for developers who want reliable monitoring without the enterprise price tag.

Real-Time Monitoring

Checks your endpoints every 60 seconds (Pro) or 5 minutes (Free). Configurable HTTP method, expected status code, and timeout.

📨

Instant Alerts

Get notified via email when a monitor goes down after 2 consecutive failures. Recovery alerts include downtime duration.

📊

Public Status Pages

Create shareable status pages at /s/your-slug. Show monitor status, uptime history, and incidents to your users.

📈

Response Time Charts

Sparkline charts showing response time trends. Track performance over 24h, 7d, 30d, or 90d periods.

🔒

Passwordless Auth

Magic link authentication via email. No passwords to remember. JWT sessions with 30-day expiration.

🏷

Status Badges

Embeddable SVG badges showing live UP/DOWN status and response time. Perfect for READMEs and documentation.

How it works under the hood

A clean, serverless architecture that scales without managing infrastructure.

Cron (VPS)
Every 60s
API
/api/cron/ping
Checker
fetch() + 10s timeout
Database
Turso (SQLite)
Failure Detection
2 consecutive = DOWN
Alert
Resend Email
Incident
Created + Tracked
Recovery
[UP] + duration
// The cron pinger — runs every minute from VPS curl -H "Authorization: Bearer $CRON_SECRET" \ https://statusping.naptownlabs.dev/api/cron/ping // For each monitor due for a check: // 1. fetch(monitor.url) with 10s AbortController timeout // 2. Compare statusCode to expectedStatus // 3. Record check in DB (status, responseMs, isUp) // 4. If 2 consecutive failures → create incident, send alert // 5. If recovery → resolve incident, send recovery email
Simple, transparent pricing

Start free, upgrade when you need more monitors or faster checks.

Free
$0
  • 3 monitors
  • 5-minute check interval
  • Email alerts
  • Basic status page
  • 7-day data retention
Team
$29/mo
  • 100 monitors
  • 1-minute check interval
  • API access
  • Team collaboration
  • Priority support
  • 90-day data retention
Embeddable Status Badges

Show your uptime status anywhere — READMEs, docs, landing pages.

Live Badge Previews

Status (UP) My API My API up up
Status (DOWN) My API My API down down
Response Time My API My API 142ms 142ms
Paused My API My API paused paused
// Embed in Markdown ![Status](https://statusping.naptownlabs.dev/api/badge/MONITOR_ID) // Embed in HTML <img src="https://statusping.naptownlabs.dev/api/badge/MONITOR_ID" alt="Status"> // Show response time instead /api/badge/MONITOR_ID?style=response // Custom label /api/badge/MONITOR_ID?label=production
Build Log — March 8, 2026

Everything shipped in today's session.

be521e2

Status Badge Embed Feature

Public SVG badge endpoint at /api/badge/[id]. Shows UP/DOWN status or response time with color coding. Embed snippet UI on monitor detail page with copy-to-clipboard for Markdown, HTML, and raw URL.

bdde712

Login + Register Pages

Added missing /login and /register pages with magic link forms. Fixed QA sweep finding — pages were returning 404. Redeployed to Vercel to resolve stale build cache.

f4779af

Blog System + 5 SEO Posts

Built blog system with frontmatter parser and markdown-to-HTML rendering. Published 5 keyword-targeted posts: uptime monitoring, status pages, downtime cost, best practices, tools compared. Dynamic sitemap generation.

ab72c08

Vercel Hobby Cron Fix

Removed minute-level cron (not supported on Vercel hobby plan). Set up VPS crontab on [email protected] to hit /api/cron/ping every 60 seconds with bearer auth.

088fdf8

Build Error Fixes

Fixed Stripe apiVersion mismatch (acacia → clover). Made Stripe, Resend, PRICE_IDS, and PRICE_TO_PLAN all lazy-initialized to prevent module-level crashes during Vercel builds. Fixed TypeScript error in uptime-bar component. Corrected env var names in .env.example.

4a78b9a

Initial Scaffold

Full StatusPing application: 14 API routes, 7 database tables, magic link auth, Stripe billing, monitor CRUD, check history, incident tracking, public status pages, alert channels, data cleanup cron.

Built with modern tools

Serverless-first, zero infrastructure to manage.

Next.js 16
App Router + API Routes
Turso
SQLite at the Edge
💧
Drizzle ORM
Type-safe Queries
🔐
jose (JWT)
Session Management
💌
Stripe
Billing + Subscriptions
Resend
Transactional Email
Vercel
Hosting + Edge Functions
🎨
Tailwind CSS
Styling

Ready to try it?