Behavioural inference, controlled decoys, and some rather sneaky 404s. Someone requests a PHP file from your site. It doesn't exist. You return a 404. A little later, someone else requests the same file. Different address, different user agent. Same small…
I've been writing about systems whose interesting behaviour happens over time. A shopper compares something, adds it to their basket, then disappears. A gateway observes a request, accumulates evidence, and decides whether the origin application should ever…
You buy a kettle, and the shop spends the next fortnight recommending kettles. You browse a birthday present, and suddenly your entire personality is scented candles. Meanwhile, the thing you actually came back to find is three pages down. Recommendation…
The same four-part shape keeps appearing across StyloBot: establish a base, retain the useful delta, measure drift, and consolidate when the evidence warrants it. Compression is not a component; it is a property of the whole system. The behavioural model…
Part of the Stylo.Bot release series. Behaviour-Aware ASP.NET UI covers the server-rendered dashboard surface; Finding and Fixing Unbounded Growth covers the reliability discipline behind bounded state; Learning to Get Faster covers the earlier adaptive-cache…
StyloBot v8 lets a site give AI crawlers a controlled Markdown view of its pages at its own local edge, without ceding the gateway to a CDN. This piece is about the extractor that does the conversion (StyloExtract): the walker bug lucidVIEW caught, and the…
Bot detection should not stop at allow/block. This post shows how StyloBot's classification result becomes application logic in ASP.NET: tag helpers in Razor, action filters and policies in controllers, signal-level gating, so your UI can shape the experience…
Bot detection should not stop at allow/block. This post shows how StyloBot's classification result becomes application logic in TypeScript: server middleware for Express and Fastify, template helpers for Handlebars, Nunjucks, and EJS, and browser web…
How do you test a detector whose answer is supposed to change as it learns? This post is about BDF, the Behavioural Definition Format that makes StyloBot testable: one file defines a class of traffic, then drives regression replay, load generation, and a…
StyloBot's detection engine is ASP.NET Core. This post explains how that engine connects to Go gateways, Node.js applications, and any other stack via a gRPC sidecar, a typed Go SDK, and a Caddy plugin, without any of those consumers needing to know anything…