Skip to main content

Documentation Index

Fetch the complete documentation index at: https://kardow.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

This walkthrough takes ~5 minutes.

1. Create the collection

From the dashboard, open Content → CMS → New collection (or POST to the API directly):
curl -X POST https://api.kardow.com/cms \
  -H "x-api-key: $KARDOW_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "slug": "sponsors",
    "name": "Sponsors",
    "visibility": "public",
    "schema": [
      { "name": "name", "type": "text",  "required": true },
      { "name": "logo", "type": "image", "required": true },
      { "name": "url",  "type": "url" },
      { "name": "tier", "type": "select", "options": ["bronze","silver","gold"] }
    ]
  }'

2. Add items

curl -X POST https://api.kardow.com/cms/sponsors \
  -H "x-api-key: $KARDOW_API_KEY" \
  -H "content-type: application/json" \
  -d '{ "data": { "name": "Acme", "logo": "https://acme.com/logo.png", "url": "https://acme.com", "tier": "gold" } }'

3. Render on your tenant site

Inside any template-2 page or component:
import { platform } from '@/lib/platform';

const sponsors = await platform.cms.list('sponsors');

return (
  <ul>
    {sponsors.items.map((s) => (
      <li key={s.id}>
        <a href={s.data.url}><img src={s.data.logo} alt={s.data.name} /></a>
      </li>
    ))}
  </ul>
);
The public read endpoint is cached at the edge for 60 seconds and revalidates automatically when you write. No manual purge required.