# Saw Croct in the Strapi integrations directory, is it an actual plugin or something else?

Asked by Danielle Mercier on 2025-05-17. Tags: strapi, marketplace, discovery.

Hi all! I was browsing the official Strapi integrations directory and came across the [Croct listing](https://strapi.io/integrations/croct) there.

It talks about adding personalization and A/B testing on top of dynamic zones, which is exactly what we have been looking for. But when I went to the marketplace tab in our Strapi admin to install it, there is nothing there. No plugin to install.

So how does this integration actually work under the hood? Is there a package I add to the Strapi project itself, or am I looking in teh wrong place entirely?

## 1 answer

### Accepted answer from Marcos Passos (2025-05-17)

You are looking in the right directory but the wrong place for the install. The [listing in the Strapi integrations directory](https://strapi.io/integrations/croct) is official, but the integration is not an admin plugin, which is why the marketplace tab shows nothing.

Here is how it works architecturally: the Croct SDK runs in your frontend application, not inside Strapi. You map the components and dynamic zones your app already renders to Croct slots in your frontend code. Croct then decides which variant to serve for each visitor, and your Strapi content stays as the default fallback whenever no experience applies. Nothing changes on the Strapi side, and there is zero content migration.

Setup is scaffolded from the frontend project:

```croct-cmd
croct init
```

The [`init` command](https://docs.croct.com/reference/cli/commands/init) wires up the SDK for your framework and generates the slot type definitions. After that, each section you want to personalize is one slot mapping in the component that renders it. See the [Strapi integration guide](https://docs.croct.com/immersion/integrations/cms/strapi) for the full walkthrough.

#### Reply from Danielle Mercier (2025-05-18)

That makes so much more sense, I was hunting for a plugin that does not exist. Ran the init in our Next.js app and the first slot is already rendering. Thanks!
