{"id":19414,"plugin_id":"plugins_6a986dc5b2d88191aa3fbe81033fb978","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:15:33.307Z","digest":"df9593ec26380a78a7b9d35b4831358e537e34f35b427b4f37b6a4d372f2c74c","against":null,"payload":{"description":"Guides integration of Uniform CMS with Next.js Page Router. Covers project setup, component registration with registerUniformComponent, fetching compositions with withUniformGetServerSideProps, rendering slots and parameters, contextual editing preview, personalization and A/B testing with Uniform Context, and how the Page Router integration differs from the App Router. Use when adding Uniform to a Next.js Page Router project, creating registered Uniform components, or configuring personalization and A/B testing.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":192},{"relative_path":"references/components.md","size_in_bytes":5078},{"relative_path":"references/personalization.md","size_in_bytes":3268},{"relative_path":"references/preview.md","size_in_bytes":1065},{"relative_path":"references/setup.md","size_in_bytes":1596}],"name":"uniform-nextjs-page-router","skill_md_contents":"---\nname: uniform-nextjs-page-router\ndescription: Guides integration of Uniform CMS with Next.js Page Router. Covers project setup, component registration with registerUniformComponent, fetching compositions with withUniformGetServerSideProps, rendering slots and parameters, contextual editing preview, personalization and A/B testing with Uniform Context, and how the Page Router integration differs from the App Router. Use when adding Uniform to a Next.js Page Router project, creating registered Uniform components, or configuring personalization and A/B testing.\nlicense: MIT\n---\n\n# Uniform with Next.js Page Router\n\nIntegration guide for wiring Uniform CMS to a Next.js application using the Page Router. The Page Router integration uses `@uniformdev/canvas-next` and `@uniformdev/canvas-react` with SSR via `getServerSideProps`.\n\n## Key differences from App Router\n\n| Aspect | Page Router | App Router |\n|--------|------------|-----------|\n| Component mapping | `registerUniformComponent()` registry + barrel file | `resolveComponent` function |\n| Data fetching | `withUniformGetServerSideProps` in catch-all route | `retrieveRoute` in async server component |\n| Imports | `@uniformdev/canvas-next` + `@uniformdev/canvas-react` | `@uniformdev/canvas-next-rsc` |\n| Slot rendering | `<UniformSlot name=\"slotName\" />` | `<UniformSlot context={context} data={component} slot={slots.name} />` |\n| Text rendering | `<UniformText parameterId=\"...\" placeholder=\"...\" />` | `<UniformText component={component} context={context} parameterId=\"...\" />` |\n| Context manifest | Required — download and embed in build | Not needed (handled server-side) |\n\n## Required packages\n\n```\n@uniformdev/canvas\n@uniformdev/canvas-react\n@uniformdev/canvas-next\n@uniformdev/context-react\n```\n\n## Resources\n\nSee `references/` for detailed guidance:\n- [Setup](references/setup.md) — Project configuration, composition fetching, component registration pattern\n- [Components](references/components.md) — Component registration, typed props, slots, text, rich text, and asset rendering\n- [Preview](references/preview.md) — Contextual editing handler, playground page\n- [Personalization](references/personalization.md) — Uniform Context setup, manifest download, SSR personalization, A/B testing\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}