NewIntroducing Upkeep

Uptime for every free-tier project

Upkeep pings your health endpoints on a schedule, keeps idle services warm, and gives you one dashboard instead of five host consoles to check.

Get started
Upkeep dashboard

Works with the hosts you use

How it works

Upkeep, as your uptime watchdog, pings every project's health endpoint on its own schedule, classifies what it finds, and alerts you the moment something changes.

Flexible checks

Method, interval, timeout, and retries - configurable per project.

Smart classification

Every ping sorted into up, degraded, waking, down, or unknown.

Multi-channel alerts

Discord, email, or a webhook - fired on status change only.

Self-hosted & free

Runs on your own Supabase project, comfortably within the free tier.

Step by step
1

Register a project

Add your project's health-check URL and pick the hosting provider it runs on.

2

Configure checks

Set the method, interval, timeout, and retry threshold - or just use sensible defaults.

3

Upkeep keeps watch

Every check is classified as up, degraded, waking, down, or unknown, and consecutive failures are grouped into one incident.

4

Get notified

Discord, email, or a webhook - fired only when a project's status actually changes.

Platform Features

Everything you need,
at one place!

Upkeep pings each project's health endpoint on its own schedule, classifies what it finds, and keeps a live status board so you're never the last to know something's down.

Get started free

Flexible checks

Set the method, expected status, interval, and timeout per project - plus custom headers and a body for endpoints that need them.

Smart classification

Every ping is sorted into up, degraded, waking, down, or unknown, so a cold start is never mistaken for an outage.

Keep-alive pinging

Ping a project just often enough to stop it from spinning down, tuned to that host's own idle-timeout window.

Incident grouping

Consecutive down or degraded checks become one incident record, not disconnected rows.

Status-change alerts

Get notified when a project's status actually changes, not on every single check.

Multi-channel notifications

Discord webhook, email, or a generic outgoing webhook for your own integrations.

Host-agnostic

Works with Render, Railway, Vercel, Fly.io, Netlify, or any host exposing an HTTP(S) health endpoint.

Self-hosted & free

Runs on your own Supabase project, comfortably within the free tier - no per-monitor pricing.

Incident tracking

Every incident, remembered - not re-discovered

When a project goes down between checks, you usually find out the hard way - a recruiter mentions a broken demo, or you stumble onto it yourself. By then there's no record of when it started or what happened. Upkeep groups consecutive failed checks into a single incident and keeps the full history attached to the project.

  • Checked
  • Down
  • Incident
  • Notified
  • Resolved

Automatic incident grouping

Consecutive down or degraded checks become one incident record, not disconnected rows scattered across a host's own logs.

Status-change alerts

Get notified the moment a project's status actually changes, not on every single check - one alert per incident instead of a flood.

Status changed to Down - alert sent.

FAQs

Your questions answered

Every check is classified as up, down, degraded (slow but responding), waking (a cold start - successful response above your response-time threshold), or unknown (the check itself errored, e.g. DNS failure). A project only gets marked down after a configurable number of retries fail, so a single slow response or transient blip won't trigger a false alarm.

Can't find what you're looking for? Open an issue on GitHub

Add a project. Set a check. Relax forever.