Your next outage is already published on someone else's changelog.

Driftpatch watches the APIs that break production, tells you which change hits your code, and hands you the patch. Start with one fix for your repo — free, done by hand, by us.

No card. No account. No call required to submit. We only read your repo, never write to it.

15 providers watched · 433 changes recorded · last check UTC.

What a missed change actually costs

Watch → Match → Patch

  1. 1. Watch

    Live

    We watch the changelogs, release notes, and API specs of the providers you depend on. Every change is tagged breaking, deprecation, or informational, and linked to the provider's own notice.

  2. 2. Match

    Live on the feed · by hand for your repo

    On the public feed, matching a change to its severity happens automatically. For the free-fix offer below, a person reads your repo by hand to check whether a tracked change actually touches your code.

  3. 3. Patch

    Live · by hand

    Our fix engine produces a real patch: a branch, a diff, a pull-request description, and a written record of what it checked. It never pushes to your repo and never opens a pull request by itself. A person reviews the diff and runs your tests before anything is sent to you.

A real patch, from a real notice — not a mockup

Anthropic retired Claude Haiku 3, with Claude Haiku 4.5 named as the replacement in its own migration notes. Driftpatch found the file that still pinned the old model name, confirmed the replacement wouldn't break the surrounding call (no conflicting parameters, no incompatible SDK calls), and produced this:

Provider notice
Anthropic retired Claude Haiku 3 on and named Claude Haiku 4.5 as the replacement.
Read the provider's own notice
Diff of …/generators/anthropic_generator.py
  1. @@ -6,7 +6,7 @@ from dotenv import load_dotenv
  2. load_dotenv()
  3. class AnthropicGenerator(BaseGenerator):
  4. Removed line: def __init__(self, api_key: str = None, model: str = "claude-3-haiku-20240307"):
  5. Added line: def __init__(self, api_key: str = None, model: str = "claude-haiku-4-5-20251001"):
  6. self.api_key = api_key or os.getenv("ANTHROPIC_API_KEY")
  7. self.model = model
  8. self.client = Anthropic(api_key=self.api_key)
Repository
This diff comes from a public repository, name withheld — the code and the fix are real; we're just not naming someone else's project to sell ours.
Tests
The project's own test suite ran clean against this change: 57 tests passed before and after; the 2 that failed were unrelated and failed the same way on both sides.
Pull request
This patch has not been opened as a pull request anywhere — that only happens with the repo owner's review, never automatically.

We've run this engine 38 times against 37 real public repos. It produced a patch 7 times. The other 31 times, it told us why it couldn't — and refused rather than guess.

From the feed this week

See the full feed →

Get your first fix free

10 of 10 slots left

Tell us one repo. We check it by hand against the breaking changes we already track. If one hits your code, we build you a real patch. If nothing matches yet, we tell you that too.

To submit
A repo URL and an email. Nothing else. No card, no account, no call required.
What you get, and by when
We reply within two business days — yes, we found a match and we're building your patch, or no, nothing matches yet. That's the only time commitment on this page: we don't promise when a patch arrives, because that depends on when the provider ships a change that actually hits your code, and we don't control that.
What we ask back, only if we deliver a patch
20 minutes to tell us whether it's worth paying for, and permission to mention the result without your name or your repo's name.
What we never do
We don't push anything to your repo. We don't open a pull request without your review. We don't touch your tests. The patch is yours to apply or ignore.

Get my first fix free ↓

Questions engineers ask first

Why not just read the changelogs myself?

Because there are 15 providers across payments, messaging, commerce, and AI models, and none of them schedule a change around your calendar.

We read every one of them, tag what's breaking, and link back to their own notice — one feed, not 15 tabs.

Doesn't Dependabot already do this?

Dependabot watches the packages pinned in your lockfile — versions you choose when to upgrade.

We watch the third-party APIs you call over the network, where the provider decides when something changes, with no lockfile to pin it.

What if the alert is a false positive — or what if you miss something?

We tune conservative on purpose: every false-positive guard we've shipped is written down, tested, and the exact wording that triggered a tag is shown next to the change.

We also publish what we can't catch — a break with no announcement still slips through today, and we'd rather say so than pretend we're complete.

What happens to my code?

For the free-fix slots, a person reads your repo by hand. Nothing automated touches it, and we never push a branch or open a pull request ourselves.

You get a patch and a written explanation of what it changed and what it left alone. You decide if and when it goes in.

Is this free forever?

The public feed stays free, always — at most one email a week, unsubscribe in one click, no card.

The 10 free-fix slots are limited and done by hand. What ongoing repo coverage costs after that is in the pricing section below: Team and Business at launch price, locked for the first 10 slots who take one.

Pricing

Why the price is here: so nobody wastes their time, and so the price is a real conversation on the 20-minute call — not a surprise after the fact.

No billing code exists for Team or Business. These are priced intentions, shown to test willingness to pay before we build the metering and billing behind them.

Start with the free fix ↓

Get your first fix free

Tell us one repo. We check it by hand against the breaking changes we already track. If one hits your code, we build you a real patch. If nothing matches yet, we tell you that too. 10 of 10 slots left.

No card. No account. No call required to submit. We send a patch, or we tell you we found nothing. We only read your repo, never write to it.