Route alerts somewhere you will see them
For a solo developer, email is usually the wrong channel — it arrives alongside everything else and gets triaged tomorrow. A Discord or Telegram message reaches you in seconds and costs nothing.
All of those channels are on the Free plan. Webhooks (from Starter) are worth the extra five minutes if you want something custom: a push notification, a home automation light, a message into whatever tool you already live in.
Watch the things that fail quietly
Side projects rarely fail loudly. A free-tier database goes to sleep after inactivity. A hosting platform suspends the app for exceeding a quota. A background job stops running because a token expired.
None of these produce an error anyone sees, because nobody is looking. A health endpoint that touches the database and a heartbeat check on your scheduled jobs cover most of it.
Keep it proportionate
A project with modest traffic does not need checks every 15 seconds from 3 regions. Checking every 3 minutes catches essentially everything that matters at that scale, without generating noise you will start ignoring — and that is exactly what the Free plan gives you, for 50 monitors, with no card.
The goal is to know within a reasonable window, not to build a NOC for a weekend project.
A five-minute setup
Main URL: create an HTTP monitor for your app. Type the bare domain and the dashboard adds https://. Add a Required keyword that only appears on your real page, such as your app's name. When a host suspends a project or a domain lapses, the replacement page often returns 200, and the keyword is what catches it.
Health endpoint: add a route such as /api/health that runs one cheap database query and returns a small JSON body like {"status":"ok"}. Monitor it with an API monitor that expects 200 and asserts on that field. This is the check that notices a sleeping free-tier database or an expired connection string.
Cron jobs: create a cron heartbeat monitor with the same cron expression and time zone as the job, then add a call to the heartbeat URL at the end of the job, for example: 0 2 * * * /usr/local/bin/backup.sh && curl -fsS "<heartbeat URL>". To report a failure on purpose, call the same URL with ?status=fail. If a run is due and no ping arrives within the grace period, you get an alert.
Certificates and domains: on the monitor's Domain & SSL card, turn on reminders before the certificate or domain expires. They start 30 days ahead by default, then come at 15, 7 and 2 days and 24 hours before expiry. Chat channels receive them whenever the reminders are on; for email, also turn on the SSL Certificate Expiry preference, which is off by default.
DNS: DNS record monitors are on every plan too. Watching your A and MX records catches a mistaken edit at your DNS provider before your users notice.
A status page and badge for your users
Free includes 1 status page. For an open-source project, a public API or a small SaaS, add your main monitors as components and share the link. The page shows live status, 90 days of uptime bars and past incidents, and users can subscribe to incident emails.
Each status page also has a status badge you can paste into a README as Markdown or HTML. It shows the page's overall state, so visitors to your repository can see at a glance whether the hosted version is up.
Automate it once you have more than a few monitors
The sutramx CLI keeps monitors, status pages and alert channels in a version-controlled sutramx.yml file: sutramx plan shows what would change and sutramx apply makes it so. The CLI and the REST API use a workspace API key, which needs a plan with API keys (Starter, Growth and Pro).
Starter also brings checks every minute, signed webhooks, multi-step API checks and confirmation from more than one region before you are alerted. None of that is necessary on day one, and there is no trial to run out: Free does not expire.
Common questions
Is the Free plan really free? Yes. 50 monitors, checks every 3 minutes, unlimited team members, no card and no expiry. Email, Slack, Discord, Telegram, Microsoft Teams and browser push alerts are all included.
Will monitoring keep my free-tier app awake? It can, because every check is a real request. Some hosts treat that as activity and some do not, and some limit how many hours a free app may run. If you would rather your app sleeps, check it less often or monitor a static page instead, and accept that the first visitor after a sleep will wait.
What happens if I need more than 50 monitors? Creating or resuming one more is blocked and the dashboard offers an upgrade. Nothing is deleted and there is no overage billing. Paused monitors do not count, so you can pause old projects to make room.
Features, guides and tools for this setup
- Features: Ping, Port, UDP & Cron, API Monitoring and MCP Server Monitoring
- Guides: Cron Job Monitoring, Choosing Check Intervals, Why Your Monitor Reports 403 While Your Site Works, How to Monitor MCP Servers and What Is Uptime Monitoring?
- Free tools: Cron Expression Parser, HTTP Status Code Reference and Unix Timestamp Converter
- Integrations: Discord alerts setup, Telegram alerts setup, Mattermost alerts setup, GitHub issues alerts setup and Webhooks alerts setup
- Use cases: Monitoring for SaaS Platforms and Monitoring for E-Commerce
- Comparisons: SutramX vs Freshping and SutramX vs UptimeRobot
- More from SutramX: Developers & API