The marketing site and the product run on different hosts, and the app’s
session cookie lives on the app’s host, so ax1om.ai could not tell a signed-in
customer from a first-time visitor. Every docs page pitched everyone the same
way.
The app now sets one first-party cookie, ax1om_lifecycle, on .ax1om.ai at
login and whenever your plan changes. Its value is a single word from a closed
set: trial, free, pro or enterprise. There is no identifier in it, no
email address, and nothing that could be joined back to a person. It is set for
30 days with SameSite=Lax and Secure, it is cleared at every sign-out, and
the app never reads it back. It is not written while an admin is acting as a
customer, so an impersonated session does not publish the target org’s stage on
the admin’s browser.
ax1om.ai reads it to pick which pair of links a docs page shows. A visitor is
offered a way to start; a Pro reader is offered the app and the reference
instead of a signup form; a Free reader on the scoring page is told plainly that
live scoring is on Pro. The absence of the cookie means visitor, and an
unrecognised value is treated as one.