contentstack-kickstart
от contentstack
Contentstack Delivery SDK, environment variables, Live Preview, and the seeded page model in this kickstart.
npx skills add https://github.com/contentstack/kickstart-next-ssg --skill contentstack-kickstartContentstack kickstart – kickstart-next-ssg
When to use
- Changing how the app fetches or displays CMS content
- Debugging Live Preview or Visual Builder integration
- Extending TypeScript types for new fields or content types
Instructions
Entry points
- Stack and helpers: lib/contentstack.ts —
stack,initLivePreview(),getPage(url) - CMS-aligned types: lib/types.ts — e.g.
Page,Block,File
Stack configuration
- Built with
@contentstack/delivery-sdkcontentstack.stack({ ... })usingNEXT_PUBLIC_CONTENTSTACK_API_KEY,NEXT_PUBLIC_CONTENTSTACK_DELIVERY_TOKEN,NEXT_PUBLIC_CONTENTSTACK_ENVIRONMENT, and region-related settings. - Optional overrides for hosts/CDN (internal or custom):
NEXT_PUBLIC_CONTENTSTACK_CONTENT_DELIVERY,NEXT_PUBLIC_CONTENTSTACK_PREVIEW_HOST,NEXT_PUBLIC_CONTENTSTACK_CONTENT_APPLICATION,NEXT_PUBLIC_CONTENTSTACK_PREVIEW(boolean string),NEXT_PUBLIC_CONTENTSTACK_PREVIEW_TOKEN. - Region resolution uses helpers from
@timbenniks/contentstack-endpointsaligned withNEXT_PUBLIC_CONTENTSTACK_REGION.
Fetching content
getPage(url)queries content typepage, fieldurl, equality match viaQueryOperation.EQUALS, then returns the first entry.- When
NEXT_PUBLIC_CONTENTSTACK_PREVIEW === 'true',contentstack.Utils.addEditableTagsis applied to the entry for in-editor overlays.
Live Preview (client)
- pages/index.tsx:
initLivePreview()runs inuseEffect;ContentstackLivePreview.onEntryChangerefetches the home page so the UI updates in preview. initLivePreviewinlib/contentstack.tsuses@contentstack/live-preview-utilswithmode: "builder", stack details from env, optional application host from env/endpoints, and edit button enabled (withoutsideLivePreviewPortalexcluded).
Seeded stack and tokens
- CLI seed and token setup are documented in root README.md (delivery token with preview scope, Live Preview environment).
Images and URLs
- Remote image hostnames for
next/imageare configured in next.config.mjs; optionalNEXT_PUBLIC_CONTENTSTACK_IMAGE_HOSTNAMEnarrows or replaces defaults.