Saltar al contenido

Developers

Content

El dueño edita el sitio desde el chat. Tu app lee esos datos vía API tokenizada — sin paneles ni CMS paralelo.

Qué es

Cada sitio Guaso guarda content_entries tipados por el schema del template (páginas, colecciones, bloques). La Content API expone lectura autenticada para hosts headless; la escritura sigue siendo solo por chat.

El package @guaso-ai/content es el cliente HTTP server-only para leer esas entries con token de lectura. No escribe, no abre Neon, no corre en el browser. La UI de bloques no vive acá: usá el registry @guaso.

Instalar

npm i @guaso-ai/content

También en npm (@guaso-ai/content@0.2.0)(abre en una pestaña nueva).

Uso mínimo

import { createClient } from "@guaso-ai/content";
const client = createClient({  siteId: process.env.GUASO_SITE_ID!,  token: process.env.GUASO_CONTENT_TOKEN!,});
const home = await client.getEntry("pages/home");if (home.empty) {  // empty state}
const batch = await client.getEntries(["pages/home", "pages/about"]);

Solo en RSC / route handlers / server. Tipado mínimo: getEntry / getEntries { data, empty }. Env opcional GUASO_API_BASE (default https://api.guaso.link). Missing key → { data: null, empty: true } (HTTP 200). Revalidate vía webhook del host — el contrato es host-agnóstico.

Server-only

El package depende de server-only. Importarlo desde un Client Component ("use client") rompe el build (poison). El assert de runtime también tira si hay window (Node/Vite/tests sin condition react-server).

Guard ESLint opcional (copy-paste — npm i no configura ESLint):

// eslint.config.mjs — opcional; npm i NO lo aplica solo{  files: ["**/components/**/*.{ts,tsx}"],  rules: {    "no-restricted-imports": [      "error",      {        paths: [          {            name: "@guaso-ai/content",            message:              "Server-only: importá desde RSC / route handlers, nunca desde Client Components. Token ⛔ NEXT_PUBLIC_*.",          },        ],      },    ],  },}

Código fuente

El SoT vive fuera del monorepo de Guaso App:

github.com/guaso-ai/guaso-content(abre en una pestaña nueva)

Relacionado