contentstack-kickstart

Sử dụng khi thay đổi cách sử dụng Contentstack SDK, Live Preview, cấu hình env, hoặc truy vấn nội dung trong kickstart-next-ssr.

npx skills add https://github.com/contentstack/kickstart-next-ssr --skill contentstack-kickstart

Contentstack kickstart – kickstart-next-ssr

When to use

  • Editing how the stack is created or how Live Preview is wired
  • Adding or changing content types, queries, or types for entries
  • Updating environment variable names or documentation

Instructions

Entry points in this repo

FileRole
lib/contentstack.tsgetStack(), initLivePreview(), getPage() — core SDK and preview behavior
app/page.tsxServer page: reads Live Preview searchParams, applies livePreviewQuery, fetches page
components/ContentstackLivePreview.tsxClient component: calls initLivePreview() when preview is enabled
lib/types.tsTypeScript shapes for Page and nested modular blocks (matches seeded content)
app/layout.tsxImports app/globals.css and mounts <ContentstackLivePreview /> after {children}

Request isolation (getStack)

  • Always create a fresh stack per server request when handling delivery or preview on the server. See the comments in lib/contentstack.ts: a shared instance can leak Live Preview configuration across concurrent requests.
  • getPage(url, stackInstance?) accepts an optional stack so the caller can configure Live Preview on the same instance before fetching.

Live Preview (SSR)

  1. URL/query: Contentstack adds query parameters (e.g. live_preview, content_type_uid, entry_uid, preview_timestamp). app/page.tsx reads them from searchParams.
  2. Server: If live_preview is present, call stack.livePreviewQuery({ ... }) on the stack from getStack(), then pass that stack into getPage("/", stack).
  3. Client: components/ContentstackLivePreview.tsx runs initLivePreview() inside useEffect when NEXT_PUBLIC_CONTENTSTACK_PREVIEW === "true". That uses ssr: true and mode: "builder" in lib/contentstack.ts.

Content query

  • Default page fetch uses content type page, field url with QueryOperation.EQUALS, wired in lib/contentstack.ts.
  • When preview is enabled, contentstack.Utils.addEditableTags is applied to the entry for visual building.

Environment variables

Documented in README.md. All are NEXT_PUBLIC_* in this template (browser-visible). Typical set:

  • NEXT_PUBLIC_CONTENTSTACK_API_KEY
  • NEXT_PUBLIC_CONTENTSTACK_DELIVERY_TOKEN
  • NEXT_PUBLIC_CONTENTSTACK_PREVIEW_TOKEN
  • NEXT_PUBLIC_CONTENTSTACK_REGION
  • NEXT_PUBLIC_CONTENTSTACK_ENVIRONMENT
  • NEXT_PUBLIC_CONTENTSTACK_PREVIEW

Optional overrides for hosts (used internally at Contentstack) appear in lib/contentstack.ts: NEXT_PUBLIC_CONTENTSTACK_CONTENT_DELIVERY, NEXT_PUBLIC_CONTENTSTACK_PREVIEW_HOST, NEXT_PUBLIC_CONTENTSTACK_CONTENT_APPLICATION, NEXT_PUBLIC_CONTENTSTACK_IMAGE_HOSTNAME (see next.config.mjs for image host allowlist).

Dependencies

  • @contentstack/delivery-sdk — stack and queries
  • @contentstack/live-preview-utils — ContentstackLivePreview.init, types like IStackSdk
  • @timbenniks/contentstack-endpoints — region and endpoint resolution
  • isomorphic-dompurify — sanitization where used in UI

Thêm skills từ contentstack

cms-assets
contentstack
Hướng dẫn các nhà phát triển cách tổ chức, phân phối và chuyển đổi tài nguyên trong Contentstack. Bao gồm cấu trúc thư mục, các phép chuyển đổi của Image Delivery API, xuất bản…
cms-branches-aliases
contentstack
Tư vấn cho nhà phát triển về cách sử dụng Contentstack branches để phát triển nội dung độc lập và aliases để triển khai nội dung không gián đoạn. Bao gồm chiến lược branch,…
cms-data-modeling-best-practices
contentstack
Hướng dẫn các nhà phát triển mô hình hóa nội dung trong Contentstack bằng cấu trúc tái sử dụng đơn giản nhất. Kỹ năng này giải thích khi nào nên sử dụng loại nội dung, tham chiếu, toàn cục…
cms-live-preview-visual-builder-support-assistant
contentstack
Chẩn đoán và hướng dẫn triển khai Contentstack Live Preview và Visual Builder. Theo dõi ngữ cảnh xem trước, xác định hợp đồng bị hỏng, và đề xuất…
cms-releases
contentstack
Tư vấn cho nhà phát triển về cách sử dụng Contentstack Releases để triển khai nội dung đồng bộ và nguyên tử. Bao gồm tạo bản phát hành, quản lý mục, triển khai theo giai đoạn,…
cms-roles-permissions
contentstack
Tư vấn cho các nhà phát triển về việc thiết kế vai trò, quyền hạn, nhóm và quyền truy cập token trong Contentstack. Giải thích vai trò tích hợp sẵn, vai trò tùy chỉnh, việc hợp nhất quyền hạn,…
cms-taxonomy
contentstack
Tư vấn cho nhà phát triển về cách sử dụng Contentstack Taxonomy để phân loại nội dung có cấu trúc, phân cấp và lọc phía phân phối. Bao gồm sự khác biệt giữa taxonomy và tags,…
cms-tokens-authentication
contentstack
Tư vấn cho nhà phát triển cách chọn phương thức xác thực Contentstack và loại token phù hợp cho các trường hợp sử dụng frontend, backend, tự động hóa và ứng dụng bên thứ ba.…