모든 언어를 구사하는 헤드리스 CMS
콘텐츠를 한 번 모델링하고, 체이닝 가능한 SDK로 조회하고, 각 언어를 엣지에서 제공하세요. 별도의 번역 파이프라인도, 언어마다 중복된 항목도 필요하지 않습니다.
콘텐츠 모델 · blog-posts
항목 하나 · 세 가지 언어
3 locales · 2 published · 1 draft
01 · Query
화면마다 체이닝 가능한 호출 하나
이 SDK는 데이터베이스 클라이언트처럼 읽힙니다. 모델을 고르고, 필터를 걸고, 관계를 확장하고, 언어를 요청하세요. 돌아오는 결과는 이미 현지화되어 있습니다.
- API 계층을 작성하지 않고도 필터링, 정렬, 페이지네이션이 가능합니다.
- 원하는 언어를 요청하면 그 언어로 받습니다. 폴백은 알아서 처리됩니다.
- N+1 요청 대신 한 번의 왕복으로 관계를 확장하세요.
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
다국어 CMS에 실제로 필요한 모든 것
콘텐츠 모델링, 필드 단위 로컬라이제이션, 발행 상태 관리 — 번역 플랫폼이 사용하는 것과 동일한 MCP·CDN 인프라 위에서 동작합니다.
Content models
대시보드에서 필드를 한 번 정의하면, 모든 항목이 그 스키마와 검증 규칙을 상속합니다.
Per-field localization
필드를 localized로 표시하면 언어별로 값을 하나씩 저장합니다. URL slug도 포함됩니다.
Relations & expand
작성자, 카테고리, 제품을 연결하고 expand로 한 번의 요청에 함께 가져오세요.
Draft → published
항목에는 상태가 있으므로, 완성되지 않은 번역이 프로덕션 독자에게 노출되지 않습니다.
MCP for agents
AI 에이전트는 관리자 UI를 스크래핑하는 대신 타입이 지정된 MCP 도구로 항목을 생성하고 번역하고 발행합니다.
Edge delivery
읽기 요청은 번역과 동일한 CDN에서 제공되며, stale-while-revalidate 방식의 복원력을 갖습니다.
03 · Adapters
이미 사용 중인 프레임워크에 그대로 넣으세요
provider 하나, 훅 하나. 어댑터들의 차이는 각 프레임워크의 라이프사이클에 어떻게 연결되는지뿐입니다.
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
콘텐츠와 번역을 하나의 CDN에서
항목과 UI 문구가 동일한 파이프라인으로 발행되므로, 릴리스가 절반만 번역된 상태로 나가는 일이 없습니다. 인터페이스의 문구와 CMS의 콘텐츠가 함께 배포됩니다.
UI strings
코드에서 스캔한 키를 용어집 컨텍스트와 함께 번역하여 엣지에 발행합니다.
Long-form entries
필드 단위 로컬라이제이션, 초안, 관계를 갖춘 모델링된 콘텐츠.
독자가 실제로 여는 콘텐츠
항목·언어·국가별 조회수를 제공하므로, 실제로 주목받는 콘텐츠만 번역할 수 있습니다.
“CDN 게시 기능이 정말 놀라워요. 번역을 푸시하면 즉시 라이브로 반영됩니다 — 배포도, 캐시 무효화도 필요 없어요.”

Tevfik Can Karanfil
창업자, Carna
Get started
콘텐츠를 한 번 모델링하고, 어디에나 발행하세요
모델을 만들고 첫 항목을 추가한 뒤 세 가지 언어로 읽어보세요. 평가 기간에는 무료입니다.