Use this checklist to verify your Lynkow integration covers every feature. Each item links to the detailed guide. Skip items marked (optional) if not needed for your project.
FOR LLMs: This is the master checklist for integrating Lynkow. Follow each step in order. Full documentation at lynkow.com/docs. Machine-readable: /llms.txt and /llms-full.txt.
SDK Integration
1. SDK Setup
Install the SDK:
npm install lynkowCreate shared client in
lib/lynkow.tswithcreateClient({ siteId })Set
NEXT_PUBLIC_LYNKOW_SITE_IDin.env.localConfigure ISR cache:
fetchOptions: { next: { revalidate: 60 } }→ Guide: Quick Start
2. Pages & Site Configuration
Fetch site config with
lynkow.globals.siteConfig()for header/footerRender pages with
lynkow.pages.getBySlug()orgetByPath()Build navigation from
lynkow.pages.list()Handle 404 with
isLynkowError()+notFound()→ Guide: Pages & Site Configuration
3. Blog / Content
List articles with
lynkow.contents.list()+ paginationSingle article page with
lynkow.contents.getBySlug()Render HTML body with
dangerouslySetInnerHTMLDisplay author, categories, tags
Featured images with
featuredImageVariants(responsive) → Guide: Build a Blog with Next.js
4. Categories & Tags
Category pages with
lynkow.categories.getBySlug()Category tree with
lynkow.categories.tree()Tag filtering with
lynkow.contents.list({ tag: 'slug' })→ Guide: Build a Blog with Next.js
5. Catch-all Routes & Path Resolution
Implement
app/[...slug]/page.tsxwithlynkow.paths.resolve()Use
isContentResolve()/isCategoryResolve()type guardsStatic generation with
lynkow.paths.list()ingenerateStaticParams()Handle redirections with
lynkow.paths.matchRedirect()in middleware → Guide: Catch-all Routes & Path Resolution
6. Dynamic Forms
Fetch form schema with
lynkow.forms.getBySlug()Render fields dynamically from
form.schemaClient-side validation from
field.validationSubmit with
lynkow.forms.submit()(honeypot is automatic)Handle success vs pending (double opt-in)
(optional) reCAPTCHA v3 integration if
form.recaptchaEnabledConfigure Preview URL for localhost development (avoids 403) → Guide: Dynamic Forms
7. Customer Reviews
List reviews with
lynkow.reviews.list()Display star ratings and author info
Submit reviews with
lynkow.reviews.submit()Handle moderation (pending vs approved)
Check settings with
lynkow.reviews.settings()→ Guide: Customer Reviews
8. Media & Image Optimization
Use
featuredImageVariantspresets (thumbnail, card, hero, og)Build responsive images with
lynkow.media.srcset()Single transforms with
lynkow.media.transform()(optional) Custom Next.js Image loader
(optional) Blur placeholder with tiny transform → Guide: Media & Image Optimization
9. Multi-language (optional)
Set default locale in client config
Per-request locale override:
{ locale: 'fr' }Build locale switcher from
content.structuredData.alternatesGenerate hreflang tags
Static generation per locale with
paths.list({ locale })(optional) Next.js middleware for locale detection → Guide: Multi-language (i18n)
10. Structured Content (optional)
Detect structured content:
content.customData !== nullFetch category schema for field type info
Render richtext fields with
dangerouslySetInnerHTMLHandle image, select, array, object field types → Guide: Structured Content
11. SEO — Meta Tags & Structured Data
generateMetadata()withmetaTitle,metaDescription,keywordsOpen Graph:
ogImage,ogImageVariantsCanonical URLs:
canonicalUrlwith fallbackJSON-LD: inject
content.structuredData.article.jsonLdFAQ JSON-LD: inject
content.structuredData.faq.jsonLdif present → Guide: SEO & Analytics (sections 1-4)
12. SEO — Sitemap, Robots, LLMs
XML Sitemap:
app/sitemap.xml/route.tswithlynkow.seo.sitemap()Robots.txt:
app/robots.txt/route.tswithlynkow.seo.robots()llms.txt:
app/llms.txt/route.tswithlynkow.seo.llmsTxt()llms-full.txt:
app/llms-full.txt/route.tswithlynkow.seo.llmsFullTxt()Per-article Markdown:
.mdroute withlynkow.seo.getMarkdown()Add
<link rel="alternate" href="/llms.txt">in layout<head>→ Guides: SEO & Analytics (sections 5-7) + LLM-Ready Content
13. Analytics
Initialize tracker:
lynkow.analytics.init()Track SPA navigation:
lynkow.analytics.trackPageview({ path })(optional) Custom events:
lynkow.analytics.trackEvent()GDPR: If EU site, do NOT init without consent — see step 14 → Guide: SEO & Analytics (sections 8-9)
14. GDPR Cookie Consent
Show consent banner:
lynkow.consent.show()Conditional analytics: disable until consent granted
Listen for changes:
lynkow.on('consent-changed', cb)Enable/disable tracking based on
categories.analytics(optional) Custom consent UI with
acceptAll(),rejectAll(),setCategories()→ Guide: SEO & Analytics (section 10)
15. Webhooks & Cache Revalidation
Create webhook in admin: Settings > Webhooks
Implement
app/api/revalidate/route.tshandlerVerify HMAC-SHA256 signature
Map events to
revalidatePath()/revalidateTag()Handle: content.published, content.updated, content.deleted, site_block.published → Guide: Webhooks & Cache Revalidation
16. Error Handling
Use
isLynkowError()type guard in catch blocksNOT_FOUND →
notFound()in Next.jsRATE_LIMITED → exponential backoff retry
VALIDATION_ERROR → display field errors from
details[](optional) React Error Boundary → Guide: Error Handling & Resilience
17. Visual Editor (optional)
Configure CSP headers:
frame-ancestors 'self' https://app.lynkow.comAdd
<LynkowVisualEditor cmsOrigin="...">provider in layoutMark editable fields with
data-lynkow-blockanddata-lynkow-fieldUse
useBlockData()hook for live previewSet Preview URL in admin: Settings > Site → Guide: Visual Editor
18. Draft Preview (optional)
Create preview entry route:
app/api/preview/route.tsCreate exit route:
app/api/preview/exit/route.tsFetch draft content via V1 API with Bearer token
Use
draftMode().isEnabledto branch rendering → Guide: Draft Preview
19. Search (optional)
Server-side:
lynkow.search.query('term')Client-side: autocomplete component
Expose search endpoint for LLMs → Guide: Instant Search
Admin Configuration Checklist
These steps are done in the Lynkow admin dashboard, not in code.
Site Setup
Site created with correct domain
Preview URL set (Settings > Site) — required for forms, reviews, visual editor, and localhost development
API Token created (Settings > API Tokens) — for webhooks and draft preview
Content
At least one category created
Site Blocks created (header, footer, pages)
Blog articles published
SEO
Sitemap settings configured (Settings > SEO)
Robots.txt rules set
llms.txt enabled with site description
(optional) Sitemap sources added for multi-site setup (Settings > SEO > Sitemap > External Sitemaps)
(optional) Redirections configured for URL changes (Settings > SEO > Redirects)
Analytics & Consent
Analytics enabled
Consent mode set: opt-in for EU sites, opt-out for non-EU
Cookie consent categories configured (necessary, analytics, marketing)
(optional) Third-party scripts assigned to consent categories
Webhooks
Webhook URL configured pointing to your
/api/revalidateendpointWebhook secret set for HMAC-SHA256 verification
Events selected: content.published, content.updated, content.deleted
Visual Editor
Preview URL set correctly (Settings > Site)
Site Blocks have schemas matching your
data-lynkow-blockslugs