Docs

Everything you need to set up and live with Forewarn. Read top-to-bottom in five minutes.

Overview

Forewarn watches public web pages — competitor pricing, product changelogs, news, regulatory docs, anything — and tells you in one sentence when something meaningful ships. You add URLs, Forewarn renders and extracts them on a schedule, diffs them against the previous snapshot, and emails you a summary. Slack delivery is in the works.

The explicit goal is to be ignorable: quiet when nothing matters, loud exactly when something does.

Quick start

  1. Create an account. Free plan includes 5 URLs.
  2. Go to Dashboard and add a source + a URL to watch.
  3. Add a destination in Settings. Email alerts ship today; you can also paste a Slack incoming webhook (delivery coming soon).
  4. That's it. Forewarn will start checking on the next scheduled tick and notify you when a meaningful change lands.

Page types

Forewarn tunes its classifier per page type. When you add a URL, it's auto-classified into one of:

  • pricing — plan names, prices, feature bullets.
  • changelog — new entries or major version bumps.
  • blog — new posts only; unchanged listings ignored.
  • careers — new roles appearing or disappearing.
  • other — generic diff-based classification.

You can pick the page type when adding a URL — useful for pages that look like one thing but behave like another (e.g. a pricing FAQ). If auto-detection guesses wrong, delete and re-add with the correct type.

Check frequency

Each URL is assigned a bucket: every 15 min, hourly, every 4 hours, or daily (default). Each bucket runs on its own schedule; the dispatcher claims any page whose tick has come due and queues it for checking.

Fetches run in a real Chromium browser via Playwright, so JS-rendered pages work the same as static ones. Requests identify themselves as ForewarnBot.

Classification

Every diff is labeled meaningful, minor, or ignore with a confidence score. Only meaningful changes trigger notifications.

The underlying rules — with examples — are:

  • pricing: number, plan-name, or feature-bullet change → meaningful; layout-only reflows → minor.
  • careers: new role → meaningful; role removed → minor.
  • blog / changelog: new post or entry → meaningful; edits to existing posts are usually minor unless the substance changed.
  • CSS classes, whitespace, build/asset hashes, CSRF tokens, analytics IDs, server-render timestamps, "last updated" indicators that move on their own → ignore.

Notifications

Add as many destinations as your plan allows in Settings.

  • Email — pending alerts are batched and sent every 5 minutes. One email per meaningful change.
  • Slack — you can save an incoming webhook URL today, but Slack delivery isn't shipped yet. Coming soon.

FAQ

What happens the first time a URL is checked?

We record a baseline snapshot and don't alert — there's nothing to diff against. Subsequent checks compare against the previous snapshot.

What if a page fails to load?

The check is released and retried on the URL's next scheduled tick.

Can I see the raw diff for a change?

Yes. The source detail page shows the unified diff alongside the summary.

Do you store the full page HTML?

We store the extracted text needed to diff. Raw HTML is referenced by blob key in the snapshot record where available; we don't pull it into the UI.