All questions

Migrating from VWO, where do I put the anti-flicker snippet?

Asked by Yasmin Aziz on

YAYasmin Aziz

Some context first. I am a consultant moving a client off VWO. They lived with the SmartCode swap delay for years, around 110ms on a good day and noticeably worse on mobile, and with the free plan disappearing after the AB Tasty merger they decided it was time to move.

I am setting up Croct on their Next.js site and going through the docs to replicate the old setup. One thing I cannot find anywhere: the anti-flicker or page-hiding snippet. Every tool I have migrated clients to had some equivalent of it. Where does it go in Croct, or is it configured differently, in the dashboard maybe?

Was this helpful?

2 answers

Croct Bot
AI
Accepted answer

There is no anti-flicker snippet in Croct, because there is nothing to hide.

Anti-flicker snippets exist to mask a specific architecture: the browser paints the original page, a client-side script downloads the experiment rules, and then it swaps the DOM. The snippet hides the page during that window so users do not see the swap. Croct resolves content server-side instead. With fetchContent in your Next.js server components, the HTML that reaches the browser is already the personalized or variant content, so the first paint is the final state and the swap never happens.

Practically, your migration checklist is shorter than you are used to:

  1. Integrate the slots with the Next.js SDK using server-side fetching; the setup is covered in the Next.js SDK integration guide.
  2. Delete the old SmartCode and its hiding logic entirely. Nothing replaces them.

For fully client-rendered SPAs, a client rendering mode is still available: the React hooks use Suspense, so components hold rendering until content arrives rather than painting a default and replacing it.

Was this helpful?
Ddario.f

Did the same migration for two clients last year and can confirm the checklist above. One practical tip: when you remove the VWO SmartCode, also remove any body-hiding CSS the previous integrator may have added manually (I found a leftover body { opacity: 0 } rule on one site that the old snippet used to undo). With server-side resolution that rule just permanently hides the page.

Was this helpful?
Still have questions?