Ir al contenido
Better Content

Un CMS headless que habla todos los idiomas

Modela tu contenido una vez, consúltalo con un SDK encadenable y sirve cada idioma desde el edge: sin un pipeline de traducción aparte y sin entradas duplicadas por idioma.

Content models

Modelo de contenido · blog-posts

Una sola llamada encadenable por pantalla
.from("blog-posts").language("tr")

Pide un idioma y obtén ese idioma: los fallbacks se gestionan por ti.

Relations & expand
.expand(["author", "category"])
Draft → published

Una entrada · tres idiomas

Per-field localization

blog-posts · tr

localized

blog-posts · de

localized

blog-posts · ja

localized

MCP for agents
createContentEntry()

Better Content

Edge delivery

Modelo de contenido · blog-posts

titletextlocalized
bodyrichtextlocalized
localized_slugtextlocalized
authorrelation → authors
publishedAtdatetime

Una entrada · tres idiomas

EnglishShipping i18n without a TMSpublished
TürkçeTMS olmadan i18n yayınlamakpublished
Deutschi18n ausliefern ohne TMSdraft

3 locales · 2 published · 1 draft

01 · Query

Una sola llamada encadenable por pantalla

El SDK se lee como un cliente de base de datos: elige un modelo, fíltralo, expande sus relaciones y pide un idioma. Lo que vuelve ya está localizado.

  • Filtra, ordena y pagina sin escribir una capa de API.
  • Pide un idioma y obtén ese idioma: los fallbacks se gestionan por ti.
  • Expande las relaciones en la misma ida y vuelta en lugar de hacer N+1 peticiones.
app/blog/page.tsx
const { data } = await client
  .from("blog-posts")
  .language("tr")
  .expand(["author", "category"])
  .eq("status", "published")
  .order("publishedAt", "desc")
  .limit(10)

200 OK · 41ms · edge cache HIT

10 entries · tr · author + category expanded

02 · Capabilities

Todo lo que un CMS localizado necesita de verdad

Modelado de contenido, localización por campo y estados de publicación, con la misma infraestructura de MCP y CDN que usa la plataforma de traducción.

Content models

Define los campos una vez en el panel; cada entrada hereda el esquema y su validación.

Per-field localization

Marca un campo como localizado y guardará un valor por idioma, incluidos los slugs de URL.

Relations & expand

Vincula autores, categorías o productos y tráelos en una sola petición con expand.

Draft → published

Las entradas tienen un estado, así que las traducciones sin terminar nunca llegan a los lectores en producción.

MCP for agents

Los agentes de IA crean, traducen y publican entradas mediante herramientas MCP tipadas, en lugar de raspar un panel de administración.

Edge delivery

Las lecturas se sirven desde el mismo CDN que tus traducciones, con la resiliencia de stale-while-revalidate.

03 · Adapters

Añádelo al framework que ya usas en producción

Un provider, un hook. Los adaptadores solo se diferencian en cómo se enganchan al ciclo de vida de cada framework.

Next.js

@better-i18n/content/adapters/nextjs

React

@better-i18n/content/adapters/react

Expo

@better-i18n/content/adapters/expo

Vue

@better-i18n/content/adapters/vue

Svelte

@better-i18n/content/adapters/svelte

Vanilla JS

@better-i18n/content

04 · Better together

Contenido y traducciones en un solo CDN

Las entradas y los textos de la interfaz se publican por el mismo pipeline, así que una release nunca sale traducida a medias: los textos de tu interfaz y el contenido de tu CMS se publican juntos.

Better I18N

UI strings

Claves escaneadas desde el código, traducidas con contexto de glosario y publicadas en el edge.

Better Content

Long-form entries

Contenido modelado con localización por campo, borradores y relaciones.

Better Analytics

Lo que los lectores abren de verdad

Vistas por entrada, idioma y país, para que traduzcas lo que realmente recibe atención.

La publicación en el CDN es increíble. Subimos las traducciones y quedan activas al instante: sin despliegues y sin invalidar la caché.

Tevfik Can Karanfil

Fundador, Carna

Get started

Modela tu contenido una vez, publícalo en todas partes

Crea un modelo, añade tu primera entrada y léela en tres idiomas: gratis mientras lo evalúas.