Tell Me When Down
How it worksWhat we checkPricing
BlogFree toolsCompareDocs
Log inGet started
blog · page 2

Keeping small apps alive

Free-tier sleep6Security checks7Silent cron5Stripe webhooks5Vibe security8Site down2
An ornate iron gate with a lock in low light — protections telling the browser how to behave.
Security checks·July 18, 2026·5 min

What are security headers? A plain-English guide

Security headers tell the browser how to behave safely — refuse HTTP, block framing, don't guess file types. Here's what each of the ones that matter actually does, and why almost every new site ships without them.

A control panel of switches in low light — protections configured to travel with every response.
Security checks·July 18, 2026·6 min

How to add security headers in Next.js (including CSP)

Next.js sends no security headers by default. The static ones are a config block; the hard part is a CSP that helps without blocking your own scripts. Here's the nonce approach, the report-only trick, and the version caveat.

A calendar page fading into shadow — expiry dates arriving faster than a manual reminder can track.
Security checks·July 18, 2026·5 min

SSL certificate expiry monitoring: why the calendar reminder fails

A calendar reminder assumes your renewal works. But auto-renewal is a background job that fails silently, and cert lifetimes are dropping to 47 days by 2029. Here's why manual SSL tracking breaks, and what to monitor instead.

A single cookie lit on a dark surface — a session token that's only as safe as the flags set on it.
Security checks·July 18, 2026·5 min

Secure, HttpOnly, SameSite: the cookie flags that matter

Three small flags — Secure, HttpOnly, SameSite — decide whether your session cookie is a locked token or the easiest thing to steal on your site. Here's what each closes, and how to check which your cookies set.

An open pocket watch showing its exposed mechanism — the quiet passing of a schedule no one is watching.
Silent cron·July 18, 2026·5 min

How do I know if my cron job actually ran?

"It ran" hides four different outcomes and only one is good. Why logs and error emails miss the worst case, and how a success heartbeat catches a job that never fired at all.

A dark server streaming binary with a network cable plugged in — a scheduled job that never fired.
Silent cron·July 18, 2026·6 min

Why your Vercel cron job is not running

On Vercel it's rarely a mystery: the Hobby once-a-day cap, jobs that fire within the hour not on the minute, a CRON_SECRET that 401s your own cron, or a schedule that only runs in production.

An ornate pocket watch in low light — a scheduled workflow silently switched off after weeks of running.
Silent cron·July 18, 2026·5 min

Why your GitHub Actions scheduled workflow stopped running

GitHub auto-disables a scheduled workflow after 60 days of no repo activity — and the cron's own runs don't count as activity, so a quiet side project always trips it. Here's the rule, the fork gotcha, and the fix.

A dark database server with a faint status light — a scheduled job that logged a run but did nothing.
Silent cron·July 18, 2026·5 min

Why your Supabase pg_cron job isn't running

A pg_cron job that never runs is usually a missing pg_net extension, a UTC-not-local schedule, or a run that fired and failed. Here's how to read the run log Postgres keeps and find which is yours.

A single lever in low light — a switch held open by a signal, ready to fire the moment it goes quiet.
Silent cron·July 18, 2026·4 min

What a dead man's switch is (and when your app needs one)

Most monitoring watches for something bad happening. A dead man's switch watches for something good not happening — the right tool for backups and cron jobs that fail silently. What it is, and when you need one.

A card payment terminal on a dark counter — a charge that went through while the app never heard about it.
Stripe webhooks·July 18, 2026·6 min

Stripe webhooks failing silently — and how to catch it

The payment succeeds even when the webhook fails, so nothing looks broken until a customer writes in. The real retry-and-disable timeline, the raw-body trap, and how to catch it inside the window.

Brass seal stamps on dark wood — the signature a webhook checks before it trusts a message.
Stripe webhooks·July 18, 2026·6 min

Stripe webhook signature verification failed: the raw-body fix

"No signatures found matching the expected signature" almost always means a body parser changed the request bytes before verification ran. Here's what Stripe actually compares, and the raw-body fix for each framework.

Dice on a board in low light — the same event landing more than once, each doing the work again.
Stripe webhooks·July 18, 2026·6 min

Stripe webhook duplicate events: stop the double charge

Stripe's delivery is at-least-once, so the same event can arrive twice and charge a customer twice. Here's why it happens, and how to make your handler idempotent with the event id so running it twice is safe.

A dim locked gate at night — a paid customer still shut out because the subscription never switched on.
Stripe webhooks·July 18, 2026·5 min

Stripe subscription not activating after payment

Paid but still not upgraded? The subscription's status splits it in two: stuck in 'incomplete' means the payment never finalized; active-in-Stripe-but-not-your-app means a webhook never landed. Here's how to tell which.

A workbench under a single lamp in the dark — a webhook tested in isolation before it faces production.
Stripe webhooks·July 18, 2026·5 min

How to test Stripe webhooks locally (and what it won't prove)

The Stripe CLI brings events to your machine — stripe listen forwards them, stripe trigger fires them. Here are the commands, the signing-secret gotcha, and why passing locally doesn't prove the live endpoint works.

A laptop showing a failed-to-load page in a dark room — the moment before deciding if it's the site or just you.
Site down·July 18, 2026·5 min

Is my website down, or is it just me?

Before you panic-redeploy at midnight: is the site actually down, or just down for you? A 30-second test, what each answer means, and why one check from your laptop can't really tell you.

A red emergency light glowing in the dark — the moment a site goes down.
Site down·July 18, 2026·6 min

My website is down — how to fix it

Don't randomly restart things — work a short list in order, cheapest check first. Confirm it's really down, read the error, rule out an expired cert, check your last deploy and your host. The calm playbook for a site that's down.

123
Tell Me When Down

Uptime and security monitoring for people who'd rather ship than babysit servers. We watch so you can sleep.

product
How it worksWhat we checkPricingDocsBlogFAQ
free toolsWebsite security scanSupabase pause checkRender sleep checkMixed content checkerSecurity headers checkCookie security checkSSL expiry check
comparevs UptimeRobotvs Better Stackvs PingdomFor indie hackers
company
StatusAbout our botSupportPrivacyTerms
© 2026 TellMeWhenDown · tellmewhendown.com