SKILL.md
Contentstack 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](../../lib/contentstack.ts) —
stack,initLivePreview(),getPage(url) - CMS-aligned types: [lib/types.ts](../../lib/types.ts) — e.g.
Page,Block,File
Stack configuration
- Built with
@contentstack/delivery-sdkcontentstack.stack({ ... })usingNEXTPUBLICCONTENTSTACKAPIKEY,NEXTPUBLICCONTENTSTACKDELIVERYTOKEN,NEXTPUBLICCONTENTSTACK_ENVIRONMENT, and region-related settings. - Optional overrides for hosts/CDN (internal or custom):
NEXTPUBLICCONTENTSTACKCONTENTDELIVERY,NEXTPUBLICCONTENTSTACKPREVIEWHOST,NEXTPUBLICCONTENTSTACKCONTENTAPPLICATION,NEXTPUBLICCONTENTSTACKPREVIEW(boolean string),NEXTPUBLICCONTENTSTACKPREVIEW_TOKEN. - Region resolution uses helpers from
@timbenniks/contentstack-endpointsaligned withNEXTPUBLICCONTENTSTACK_REGION.
Fetching content
getPage(url)queries content typepage, fieldurl, equality match viaQueryOperation.EQUALS, then returns the first entry.- When
NEXTPUBLICCONTENTSTACK_PREVIEW === 'true',contentstack.Utils.addEditableTagsis applied to the entry for in-editor overlays.
Live Preview (client)
- [pages/index.tsx](../../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](../../README.md) (delivery token with preview scope, Live Preview environment).
Images and URLs
- Remote image hostnames for
next/imageare configured in [next.config.mjs](../../next.config.mjs); optionalNEXTPUBLICCONTENTSTACKIMAGEHOSTNAMEnarrows or replaces defaults.