From fac0e6fb1ccd4558d9a5f2be0624857d96fdc476 Mon Sep 17 00:00:00 2001 From: Md Junaed Hossain <169046794+junaed-optimizely@users.noreply.github.com> Date: Mon, 18 May 2026 17:49:58 +0600 Subject: [PATCH 1/2] [FSSDK-12647] doc update --- README.md | 15 ++++++--------- docs/nextjs-integration.md | 13 +++++-------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4f64b31..c2a1f4a 100644 --- a/README.md +++ b/README.md @@ -594,7 +594,7 @@ The React SDK supports server-side rendering (SSR). A pre-fetched datafile is re #### Per-request client -Create a client inside the component with a pre-fetched datafile. Use `useState` with a lazy initializer to create the instance once. On the server, use `createStaticProjectConfigManager` with `disposable: true` so the instance can be garbage collected without explicitly calling `close()`. On the client, use `createPollingProjectConfigManager` to keep the datafile up to date. +Create a client inside the component with a pre-fetched datafile. Use `useState` with a lazy initializer to create the instance once. Pass the datafile for immediate readiness during server rendering, and set `disposable: true` on the server so the instance can be garbage collected without explicitly calling `close()`. ```tsx 'use client'; @@ -602,7 +602,6 @@ Create a client inside the component with a pre-fetched datafile. Use `useState` import { useState } from 'react'; import { createInstance, - createStaticProjectConfigManager, createPollingProjectConfigManager, createBatchEventProcessor, OptimizelyProvider, @@ -615,13 +614,11 @@ export default function Page({ datafile, userId }) { const [optimizely] = useState(() => createInstance({ - projectConfigManager: isServerSide - ? createStaticProjectConfigManager({ datafile }) - : createPollingProjectConfigManager({ - sdkKey: process.env.NEXT_PUBLIC_OPTIMIZELY_SDK_KEY || '', - datafile, - }), - eventProcessor: isServerSide ? undefined : createBatchEventProcessor(), + projectConfigManager: createPollingProjectConfigManager({ + sdkKey: process.env.NEXT_PUBLIC_OPTIMIZELY_SDK_KEY || '', + datafile, + }), + eventProcessor: createBatchEventProcessor(), defaultDecideOptions: isServerSide ? [OptimizelyDecideOption.DISABLE_DECISION_EVENT] : [], disposable: isServerSide, }) diff --git a/docs/nextjs-integration.md b/docs/nextjs-integration.md index 086db67..2b4b7cd 100644 --- a/docs/nextjs-integration.md +++ b/docs/nextjs-integration.md @@ -97,7 +97,6 @@ Since `OptimizelyProvider` uses React Context (a client-side feature), it must b import { OptimizelyProvider, createInstance, - createStaticProjectConfigManager, createPollingProjectConfigManager, createBatchEventProcessor, OptimizelyDecideOption, @@ -109,13 +108,11 @@ export function OptimizelyClientProvider({ children, datafile }: { children: Rea const [optimizely] = useState(() => createInstance({ - projectConfigManager: isServerSide - ? createStaticProjectConfigManager({ datafile }) - : createPollingProjectConfigManager({ - sdkKey: process.env.NEXT_PUBLIC_OPTIMIZELY_SDK_KEY || '', - datafile, - }), - eventProcessor: isServerSide ? undefined : createBatchEventProcessor(), + projectConfigManager: createPollingProjectConfigManager({ + sdkKey: process.env.NEXT_PUBLIC_OPTIMIZELY_SDK_KEY || '', + datafile, + }), + eventProcessor: createBatchEventProcessor(), defaultDecideOptions: isServerSide ? [OptimizelyDecideOption.DISABLE_DECISION_EVENT] : [], disposable: isServerSide, }) From 2e0c0c5073dba4c8476aa8f153a9705afceb47c7 Mon Sep 17 00:00:00 2001 From: Md Junaed Hossain <169046794+junaed-optimizely@users.noreply.github.com> Date: Mon, 18 May 2026 18:55:53 +0600 Subject: [PATCH 2/2] doc update --- MIGRATION.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 561050e..98b27a0 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -569,7 +569,7 @@ Logging is **disabled by default** in v4. You must pass a `logger` to `createIns ### v4 -The `isServerSide` prop is removed. Instead, configure the client for SSR use: +The `isServerSide` prop is removed. Instead, configure the client for SSR use. Pass the datafile for immediate readiness during server rendering, and set `disposable: true` on the server so the instance can be garbage collected without explicitly calling `close()`: ```tsx 'use client'; @@ -577,7 +577,6 @@ The `isServerSide` prop is removed. Instead, configure the client for SSR use: import { useState } from 'react'; import { createInstance, - createStaticProjectConfigManager, createPollingProjectConfigManager, createBatchEventProcessor, OptimizelyProvider, @@ -589,13 +588,11 @@ function ExampleProvider({ children, datafile }) { const [optimizely] = useState(() => createInstance({ - projectConfigManager: isServerSide - ? createStaticProjectConfigManager({ datafile }) - : createPollingProjectConfigManager({ - sdkKey: process.env.NEXT_PUBLIC_OPTIMIZELY_SDK_KEY, - datafile, - }), - eventProcessor: isServerSide ? undefined : createBatchEventProcessor(), + projectConfigManager: createPollingProjectConfigManager({ + sdkKey: process.env.NEXT_PUBLIC_OPTIMIZELY_SDK_KEY, + datafile, + }), + eventProcessor: createBatchEventProcessor(), defaultDecideOptions: isServerSide ? [OptimizelyDecideOption.DISABLE_DECISION_EVENT] : [], disposable: isServerSide, })