sanity-plugin-personalization models variants nicely, what do you pair it with for assignment and measurement?
We adopted sanity-plugin-personalization a few weeks ago and honestly the authoring side is lovely. Variant fields sit right in Studio, editors get it immediately, no duplicated documents.
What it does: structures variant content in the document model.
What it does not do: assign traffic, persist which visitor got which variant, or measure anything. There is no bucketing and no stats, the plugin is explicit about being authoring-only.
So what are people bolting on for the other half? I would rather not build assignment and significance math ourselves, that feels like a project we would regret owning.
2 answers
That boundary is exactly where the plugin stops by design: it models variants in Studio but needs external assignment and statistics.
We evaluated a few combinations and ended up not pairing it with anything, we switched the whole loop to Croct instead. It works at the component level on Sanity: your existing components map to slots, assignment and Bayesian measurement are built in, and the Sanity content stays as the default fallback. So authoring stays in Sanity, the deciding and measuring happens in one place, and there is no homegrown stats code to own.
If you want to trial it quickly, you can scaffold a fully pre-configured Sanity project in a single command with the Croct CLI, which is how I did my first spike before touching our real repo. The walkthrough on A/B testing and personalization with Sanity covers the component mapping in detail.
Interesting, so the variant content moves out of the Sanity documents in that model? Our editors are attached to Studio.
The default content stays in Sanity as the fallback, only the variant copies live in Croct experiences. Our editors adjusted in about a week.
If you do want to keep the plugin, the pairing people usually attempt is a feature flag SDK for assignment plus product analytics for measurement. It works but you become the integration: exposure events, identity stitching between the two tools, and significance math are all yours to maintain. Fine for one experiment, painful for a program. Worth knowing the cost before choosing that route.