polycratia

The parser ran fine on my laptop and came back with empty fields in production. Same commit, same image, same URL.

What differed was the page the retailer sent back.

My machine got one variant: my locale, my cookie jar, a session that had been browsing that site for weeks while I built the thing. The production worker got the cold-start variant, different markup, fields sitting in different places, part of the content behind a consent gate.

The code was identical. The input was not. And that input came from someone else's server, which has no obligation to be consistent across clients.

Nothing crashed. What I got instead was a quiet import of catalog items with missing attributes, and those flowed downstream into pricing and delivery logic that had no reason to doubt them. Nothing threw. The parse "succeeded" on a page it was never written for.

So for anything that reads a third party, I changed three things.

I keep the raw response that produced each parse, so I can diff what the code saw against what I assumed it would see.

I assert on the markers the parser actually depends on: if those markers are absent, that is a failure and not an empty result.

And I develop against the production egress path instead of my own browser's view of the site, because my laptop is a privileged client and the worker never will be.

Most of the time, "works on my machine" has very little to do with my environment. It is about my machine being treated differently by systems I don't control.

For those of you running scrapers, webhooks, or any provider integration: when the source quietly changes shape, I'd want to know what notices first, your parser or the thing downstream that trusted it...

react

$ new-project --brief

or email hey@polycratia.com