{"_id":"@arlioz/flagship-next","_rev":"5-dd0844e9be97ebe8d14693bd82fcc49b","name":"@arlioz/flagship-next","dist-tags":{"latest":"5.1.0"},"versions":{"1.0.0":{"name":"@arlioz/flagship-next","version":"1.0.0","keywords":["feature-flags","flagship","next","nextjs","ssr","react","server-components"],"license":"MIT","_id":"@arlioz/flagship-next@1.0.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"f5093a4eaa7d77b0c31c8b40e139b8e1b86e96fb","tarball":"https://registry.npmjs.org/@arlioz/flagship-next/-/flagship-next-1.0.0.tgz","fileCount":13,"integrity":"sha512-1eWxPsg4nQ1OEYJ81cTVC6Liief2i5eKJmVETV/weSom/kHrU5gCzC8yJnPA+VVvADseHff/bgLh9OTYbtYiFQ==","signatures":[{"sig":"MEUCIHTs2peCSxdNpn2HlvDFllO0NeHQcIsuRngx/4ErpkyOAiEAsuCH1gBkWtJUik5VHJvTkYgFzGmwiDyirzv14H2nm2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43552},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"d2cccb42e7865e11994af3accc5d684fa1614e9a","scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-next"},"_npmVersion":"10.8.2","description":"Official Next.js SDK for FlagShip — SSR-ready feature flags","directories":{},"_nodeVersion":"20.20.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.5.1","react":"^19.0.0","vitest":"^4.0.18","typescript":"^5.8.3","@types/react":"^19.0.0","@arlioz/flagship":"^3.1.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"next":">=13.0.0","react":">=17.0.0","@arlioz/flagship":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/flagship-next_1.0.0_1773524267685_0.6641215006961727","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@arlioz/flagship-next","version":"2.0.0","keywords":["feature-flags","flagship","next","nextjs","ssr","react","server-components"],"license":"MIT","_id":"@arlioz/flagship-next@2.0.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"403c198b18cbc06f97b94e82e53bd85df43b42a5","tarball":"https://registry.npmjs.org/@arlioz/flagship-next/-/flagship-next-2.0.0.tgz","fileCount":13,"integrity":"sha512-5N51xmDpg6VO3P1rhiH1RHZhw30f6sgSywjMWBOjtoXZ0VzWpetKFkZ7uD21OmmLw6zPJ9BVfn/jVSTEFPCnrw==","signatures":[{"sig":"MEQCIHUoUsjmIvLnZ1V+A1nmjb0iMZLEdKnkESB+t8IU+3+9AiBlh1eSeHEUSEHWeVJtZMvz46d/Rv1YaSVgIuUgQm8xZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43552},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"a2dd9ada6d6e28fe0e9ca5117092e9498067312c","scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-next"},"_npmVersion":"10.8.2","description":"Official Next.js SDK for FlagShip — SSR-ready feature flags","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.5.1","react":"^19.0.0","vitest":"^4.0.18","typescript":"^5.8.3","@types/react":"^19.0.0","@arlioz/flagship":"^3.2.0","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"next":">=13.0.0","react":">=17.0.0","@arlioz/flagship":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/flagship-next_2.0.0_1773527634358_0.29649712810009654","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@arlioz/flagship-next","version":"4.0.0","keywords":["feature-flags","flagship","next","nextjs","ssr","react","server-components"],"license":"MIT","_id":"@arlioz/flagship-next@4.0.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"e160bcf21326156796870aced31d45deb7a9da07","tarball":"https://registry.npmjs.org/@arlioz/flagship-next/-/flagship-next-4.0.0.tgz","fileCount":14,"integrity":"sha512-mKjQcVaBw3tsBKlbnMGKnKTAxM9NnjNLoWYsw+eTNdEnfyKK5YBKcp5mAg/4EbBFJNME79dwhle81OU4I6MyAQ==","signatures":[{"sig":"MEUCIQChXcWdx9UtkZ3/BP7b5EbwRvQzO0oGLavvY6i58wwJDQIgF+3u1R4PmUKrN62h0Cj+wOEE9Pf1Bn6Bp8RM2+rLSPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48433},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"29cd0d35c079ba49aea37e03918093feb6674901","scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-next"},"_npmVersion":"10.8.2","description":"Official Next.js SDK for FlagShip — SSR-ready feature flags","directories":{},"_nodeVersion":"20.20.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.5.1","react":"^19.0.0","vitest":"^4.0.18","typescript":"^5.8.3","@types/react":"^19.0.0","@arlioz/flagship":"^3.4.0","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"next":">=13.0.0","react":">=17.0.0","@arlioz/flagship":">=3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/flagship-next_4.0.0_1773873240734_0.2884289779516682","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@arlioz/flagship-next","version":"5.0.0","keywords":["feature-flags","flagship","next","nextjs","ssr","react","server-components"],"license":"MIT","_id":"@arlioz/flagship-next@5.0.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"1a052b24de21548525ed86d33e551332347ff37f","tarball":"https://registry.npmjs.org/@arlioz/flagship-next/-/flagship-next-5.0.0.tgz","fileCount":14,"integrity":"sha512-mWUkOjxIunyBKALgSCzUJ6jT3i4StIjeAOFQKGdTD8K7XFKIPilM+H0nrR2Nc9zaKPQgT6WpdoNY00DirH3ncg==","signatures":[{"sig":"MEUCIQDFx6Hmron4juFj/dDV0Ajc3YOXjte8wGs5dJMxrG3eeAIgKuPotcAFRTrc13fMeZFgPAebzFrMoH2hyebns/rRSCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48869},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"ea36284e85294584df5a761598b9879f058a80e1","scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-next"},"_npmVersion":"10.8.2","description":"Official Next.js SDK for FlagShip — SSR-ready feature flags","directories":{},"_nodeVersion":"20.20.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.5.1","react":"^19.0.0","vitest":"^4.0.18","typescript":"^5.8.3","@types/react":"^19.0.0","@arlioz/flagship":"^3.5.0","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"next":">=13.0.0","react":">=17.0.0","@arlioz/flagship":">=3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/flagship-next_5.0.0_1773952800749_0.31018950215821484","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@arlioz/flagship-next","version":"5.1.0","description":"Official Next.js SDK for FlagShip — SSR-ready feature flags","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run --coverage"},"peerDependencies":{"@arlioz/flagship":">=3.5.0","next":">=13.0.0","react":">=17.0.0"},"devDependencies":{"@arlioz/flagship":"^3.7.0","@types/react":"^19.0.0","@vitest/coverage-v8":"^4.0.18","next":"^15.0.0","react":"^19.0.0","tsup":"^8.5.1","typescript":"^5.8.3","vitest":"^4.0.18"},"publishConfig":{"access":"public"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ALapaque/FlagShip.git","directory":"packages/sdk-next"},"keywords":["feature-flags","flagship","next","nextjs","ssr","react","server-components"],"_id":"@arlioz/flagship-next@5.1.0","gitHead":"8d8b86e4df6caa95951ca71253a5f0478fe7eb23","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"homepage":"https://github.com/ALapaque/FlagShip#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-EPRLVisR1Y8LMMxaZDpHe3+46pFIAJwPWeLM+Lbh8Q6YwLOv0Ehqdq0AXFbNkDfZAd+TxjSHtWX8dj6hfHAVRA==","shasum":"62067512bae1d3c6d13b2db17b0210ec3c40e147","tarball":"https://registry.npmjs.org/@arlioz/flagship-next/-/flagship-next-5.1.0.tgz","fileCount":14,"unpackedSize":49649,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDY9o7fbebYQQmbegbepUeqKS5Zub4kp0mGG+HfcG6hFAIhAP+kMvEziLXD05fPA/H15fwKn1rzhh01jmxw5b1O4yYB"}]},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"directories":{},"maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/flagship-next_5.1.0_1776620653499_0.8198983200672625"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T21:37:47.607Z","modified":"2026-04-19T17:44:13.751Z","1.0.0":"2026-03-14T21:37:47.816Z","2.0.0":"2026-03-14T22:33:54.502Z","4.0.0":"2026-03-18T22:34:00.886Z","5.0.0":"2026-03-19T20:40:00.883Z","5.1.0":"2026-04-19T17:44:13.628Z"},"bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"license":"MIT","homepage":"https://github.com/ALapaque/FlagShip#readme","keywords":["feature-flags","flagship","next","nextjs","ssr","react","server-components"],"repository":{"type":"git","url":"git+https://github.com/ALapaque/FlagShip.git","directory":"packages/sdk-next"},"description":"Official Next.js SDK for FlagShip — SSR-ready feature flags","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/ALapaque/FlagShip/main/apps/website/public/favicon.svg\" width=\"56\" height=\"56\" alt=\"FlagShip logo\" />\n</p>\n\n<h1 align=\"center\">@arlioz/flagship-next</h1>\n\n<p align=\"center\">\n  <strong>SSR-ready feature flags for Next.js.</strong><br />\n  Official Next.js SDK for <a href=\"https://github.com/ALapaque/FlagShip\">FlagShip</a> — the open-source feature flag platform built for startups.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@arlioz/flagship-next\"><img src=\"https://img.shields.io/npm/v/@arlioz/flagship-next?color=6366f1&labelColor=0a0a0a&style=flat-square\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/@arlioz/flagship-next\"><img src=\"https://img.shields.io/npm/dm/@arlioz/flagship-next?color=818cf8&labelColor=0a0a0a&style=flat-square\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/ALapaque/FlagShip/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-22c55e?labelColor=0a0a0a&style=flat-square\" alt=\"license\" /></a>\n  <img src=\"https://img.shields.io/badge/coverage-100%25-22c55e?labelColor=0a0a0a&style=flat-square\" alt=\"coverage\" />\n</p>\n\n<br />\n\n---\n\n<br />\n\n## Install\n\n```bash\nnpm install @arlioz/flagship-next @arlioz/flagship\n```\n\n> `@arlioz/flagship`, `react`, and `next` are peer dependencies.\n\n<br />\n\n## Quick Start (App Router)\n\n### 1. Fetch flags server-side\n\n```tsx\n// app/layout.tsx (Server Component)\nimport { getFlags } from '@arlioz/flagship-next/server'\nimport { Providers } from './providers'\n\nexport default async function RootLayout({ children }) {\n  const flags = await getFlags({\n    apiKey: process.env.FLAGSHIP_API_KEY!,\n    baseUrl: process.env.FLAGSHIP_API_URL,\n  })\n\n  return (\n    <html>\n      <body>\n        <Providers initialFlags={flags}>{children}</Providers>\n      </body>\n    </html>\n  )\n}\n```\n\n### 2. Wrap with provider\n\n```tsx\n// app/providers.tsx\n'use client'\nimport { FlagShipProvider } from '@arlioz/flagship-next'\n\nexport function Providers({ children, initialFlags }) {\n  return (\n    <FlagShipProvider\n      apiKey={process.env.NEXT_PUBLIC_FLAGSHIP_API_KEY!}\n      initialFlags={initialFlags}\n    >\n      {children}\n    </FlagShipProvider>\n  )\n}\n```\n\n### 3. Use flags in components\n\n```tsx\n'use client'\nimport { useFlag, Feature } from '@arlioz/flagship-next'\n\nfunction MyComponent() {\n  const darkMode = useFlag('dark-mode', false)\n\n  return (\n    <>\n      {darkMode && <DarkTheme />}\n      <Feature flag=\"beta\" fallback={<ComingSoon />}>\n        <BetaFeature />\n      </Feature>\n    </>\n  )\n}\n```\n\n### 4. Use flags in Server Components\n\n```tsx\nimport { getFlag } from '@arlioz/flagship-next/server'\n\nexport default async function Page() {\n  const showBeta = await getFlag({ apiKey: process.env.FLAGSHIP_API_KEY! }, 'beta', false)\n  return showBeta ? <BetaUI /> : <StableUI />\n}\n```\n\n<br />\n\n## Two Entry Points\n\n| Import                         | Use in            | Description                  |\n| ------------------------------ | ----------------- | ---------------------------- |\n| `@arlioz/flagship-next`        | Client Components | Provider, hooks, `<Feature>` |\n| `@arlioz/flagship-next/server` | Server Components | `getFlags()`, `getFlag()`    |\n\n<br />\n\n## API — Client\n\n| Hook / Component                    | Return                | Description               |\n| ----------------------------------- | --------------------- | ------------------------- |\n| `useFlag<T>(key, defaultValue?)`    | `T`                   | Single flag value         |\n| `useFlags()`                        | `Record<string, any>` | All flags                 |\n| `useFlagShipLoading()`              | `boolean`             | True during initial fetch |\n| `useFlagShipClient()`               | `FlagShip`            | Client for imperative use |\n| `<Feature flag children fallback?>` | `ReactNode`           | Conditional rendering     |\n\n## API — Server\n\n| Function                          | Return                         | Description                      |\n| --------------------------------- | ------------------------------ | -------------------------------- |\n| `getFlags(options)`               | `Promise<Record<string, any>>` | Fetch all flags (auto-cleanup)   |\n| `getFlag(options, key, default?)` | `Promise<T>`                   | Fetch single flag (auto-cleanup) |\n| `FlagShipServer`                  | class                          | Long-lived server client         |\n\n<br />\n\n## SSR Benefits\n\n- **No hydration mismatch** — `initialFlags` ensures server and client render identically\n- **No flash of default content** — flags are available on first render\n- **Client-side polling** — flags continue updating after hydration\n\n<br />\n\n## Compatibility\n\n- Next.js >= 13.0.0 (App Router + Pages Router)\n- React >= 17.0.0\n\n<br />\n\n## License\n\nMIT — [Arlioz](https://arlioz.be)\n","readmeFilename":"README.md"}