Skip to content

Simple guide · Overview

Page status: Active

UptimeRobot Onboarding

This guide explains how to onboard NutsNews to UptimeRobot without accidentally triggering article refresh work.

Visual overview

Primary diagram

System map

This guide explains how to onboard NutsNews to UptimeRobot without accidentally triggering article refresh work.

Render the repository-owned system map when you need it.

Diagram is not rendered yet.

View as text
UptimeRobot Onboarding

This guide explains how to onboard NutsNews to UptimeRobot without accidentally triggering article refresh work.

flowchart TB
  accTitle: UptimeRobot Onboarding
  accDescr {
    This guide explains how to onboard NutsNews to UptimeRobot without accidentally triggering article refresh work.
  }
  A["UptimeRobot Onboarding"] --> B["UPTIMEROBOT_ONBOARDING.md"]
  B --> C["Auto-generated placeholder diagram"]

UptimeRobot Onboarding

Fullscreen diagram view.

This guide explains how to onboard NutsNews to UptimeRobot without accidentally triggering article refresh work.

Use UptimeRobot as an external availability layer alongside Better Stack, Sentry, Grafana Cloud, Vercel, Cloudflare, Supabase, and the protected NutsNews admin dashboards.


UptimeRobot should answer these questions quickly:

Is the public website reachable?
Did the homepage render real NutsNews content?
Is the public article API responding?
Are important public compliance pages online?

It should not run the Cloudflare Worker refresh pipeline.


Create these monitors first.

Monitor nameTypeURLWhat it proves
NutsNews WebsiteHTTP(s)https://www.nutsnews.comThe public website is reachable
NutsNews Homepage ContentKeywordhttps://www.nutsnews.comThe homepage returned expected NutsNews HTML
NutsNews Articles APIHTTP(s) or API monitorhttps://www.nutsnews.com/api/articles?limit=1The public article feed endpoint responds
NutsNews Privacy PageHTTP(s)https://www.nutsnews.com/privacyThe privacy page required for app review is reachable
NutsNews Contact PageHTTP(s)https://www.nutsnews.com/contactThe public contact page is reachable

Optional later monitors:

Monitor nameTypeURLNotes
NutsNews Health RouteHTTP(s)https://www.nutsnews.com/api/healthAdd this only if a lightweight health route exists
NutsNews Worker HealthHTTP(s)https://nutsnews-worker-0.nutsnews.workers.dev/healthAdd this only after adding a safe Worker /health route
NutsNews Controller HealthHTTP(s)https://nutsnews-controller.nutsnews.workers.dev/healthAdd this only after adding a safe controller /health route

Do not monitor refresh-triggering Worker URLs as normal uptime checks.

Avoid adding monitors like this:

https://nutsnews-worker-0.nutsnews.workers.dev/?limit=1
https://nutsnews-controller.nutsnews.workers.dev/?shard=0

Those URLs can run ingestion, AI review, translations, image hydration, Supabase writes, or controller orchestration. UptimeRobot checks would turn into repeated production jobs.

Only monitor Worker or controller endpoints after adding safe, read-only /health routes that return a small static response and do not mutate data.


  1. Go to UptimeRobot.
  2. Create or log in to the account.
  3. Open the dashboard.
  4. Go to the monitors section.
  5. Choose New Monitor or Add New Monitor.

Official setup reference:

https://help.uptimerobot.com/en/articles/11358364-how-to-create-your-first-monitor-on-uptimerobot-quick-setup-guide

Create the first monitor:

FieldValue
TypeHTTP(s)
Friendly nameNutsNews Website
URLhttps://www.nutsnews.com
MethodDefault is fine
Alert contactsEmail and mobile push recommended

Save the monitor and confirm it becomes Up.

This monitor tells you whether the public website is reachable from outside the platform.


Create a keyword monitor:

FieldValue
TypeKeyword
Friendly nameNutsNews Homepage Content
URLhttps://www.nutsnews.com
KeywordNutsNews
Alert behaviorAlert when keyword is missing / does not exist
MethodGET, if UptimeRobot shows the option

Good fallback keywords:

NutsNews
Positive News, Simplified

Prefer a stable phrase that should always appear when the homepage renders correctly.

This catches cases where the page returns 200 OK but the rendered content is broken, blank, or replaced by an unexpected error shell.

Official keyword reference:

https://uptimerobot.com/keyword-monitoring/

Step 4: Add the Public Articles API Monitor

Section titled “Step 4: Add the Public Articles API Monitor”

Create a monitor for the public feed endpoint:

FieldValue
TypeHTTP(s), or API Monitoring if available on the current plan
Friendly nameNutsNews Articles API
URLhttps://www.nutsnews.com/api/articles?limit=1
MethodGET preferred
Alert contactsEmail and mobile push recommended

Why GET is preferred here:

  • The public articles endpoint is meant to be read with GET.
  • A GET check verifies the real public API response path.
  • A HEAD-only check may not fully exercise the same path depending on framework/runtime behavior.

Official UptimeRobot notes:

https://uptimerobot.com/blog/introducing-http-method-selection-headgetpostputpatchdelete/
https://help.uptimerobot.com/en/articles/13628553-uptimerobot-api-monitoring

Step 5: Add Public Compliance Page Monitors

Section titled “Step 5: Add Public Compliance Page Monitors”

Create simple HTTP(s) monitors:

Friendly nameURL
NutsNews Privacy Pagehttps://www.nutsnews.com/privacy
NutsNews Contact Pagehttps://www.nutsnews.com/contact

These are useful because App Store review, users, and future support workflows may depend on those pages being reachable.


Recommended starting alerts:

ChannelRecommendation
EmailEnable
Mobile pushEnable through the UptimeRobot mobile app
Slack / DiscordOptional
WebhookOptional later

Keep the first setup simple: email plus mobile push is enough.

Official notification channel reference:

https://help.uptimerobot.com/en/articles/11360953-uptimerobot-personal-notification-channels-setup-guide

After the monitors are stable, create a public or private status page named:

NutsNews Status

Recommended monitors to show:

NutsNews Website
NutsNews Articles API
NutsNews Privacy Page
NutsNews Contact Page

Do not expose internal Worker/controller refresh URLs on a public status page.

Official status page reference:

https://uptimerobot.com/knowledge-hub/monitoring/building-a-status-page-ultimate-guide/

Run these from a terminal before or after creating monitors.

Terminal window
curl -I "https://www.nutsnews.com/"

Expected: a successful HTTP status such as 200 or a valid redirect chain that ends successfully.

Terminal window
curl -s "https://www.nutsnews.com/" | grep -i "NutsNews"

Expected: at least one match.

Terminal window
curl -s "https://www.nutsnews.com/api/articles?limit=1"

Expected: a JSON response from the public article API.

Terminal window
curl -I "https://www.nutsnews.com/privacy"

Expected: successful HTTP status.

Terminal window
curl -I "https://www.nutsnews.com/contact"

Expected: successful HTTP status.


When UptimeRobot alerts, use this order:

  1. Open https://www.nutsnews.com in a browser.
  2. Check Vercel deployment status.
  3. Check Cloudflare status, DNS, redirects, and cache behavior.
  4. Check Better Stack logs for nutsnews-web errors.
  5. Check Sentry for frontend/runtime errors.
  6. Check Supabase if /api/articles?limit=1 is down but the static site is up.
  7. Check Worker/controller dashboards only if the feed is stale or new articles are not arriving.

Use these docs next:

docs/OBSERVABILITY.md
docs/TROUBLESHOOTING.md
docs/CONTROLLER_AND_SHARDS.md
docs/PUBLIC_FEED_SNAPSHOT.md

For the first UptimeRobot setup, use exactly this list:

1. HTTP(s): https://www.nutsnews.com
2. Keyword: https://www.nutsnews.com, keyword: NutsNews, alert when missing
3. HTTP(s) or API GET: https://www.nutsnews.com/api/articles?limit=1
4. HTTP(s): https://www.nutsnews.com/privacy
5. HTTP(s): https://www.nutsnews.com/contact

Add Worker/controller health monitors later only after safe /health endpoints exist.