TypeScript CMS? That's BCMS.

A TypeScript CMS should treat content as typed data. BCMS is a headless CMS with generated TypeScript types, a typed SDK, and an editor UI. Change a model, pull types, ship.

npm i @thebcms/client
NorthloopNorthloop
7 members
Search
⌘+K
Administration
  • Settings
  • Trash
Entries
  • ·
  • @thebcms
  • Terms of use
  • ·
  • Log out
Hello Mira,
Have a nice day at work!
Entries created
12
Megabytes uploaded
14.2
Members
7
Manage members
See all members
Mira Chen
mira@northloop.co
Admin
Priya Nair
priya@northloop.co
Admin
Sofia Reyes
sofia@northloop.co
Amara Okonkwo
amara@northloop.co
Nadia Hassan
nadia@northloop.co
Camila Duarte
camila@northloop.co
Jordan Hale
jordan@northloop.co
Admin
Elias Brandt
elias@northloop.co
Kenji Watanabe
kenji@northloop.co
Luca Moretti
luca@northloop.co
Theo Andersson
theo@northloop.co
Invites
  • alex.morgan@northloop.co
    Pending
    Cancel invitation
  • Recently uploaded
    homepage-hero.jpg
    fintech-case-cover.jpg
    design-systems-blog.jpg
    studio-team.jpg

    Why BCMS works as a TypeScript CMS

    Searches for TypeScript CMS often mean typed, developer-first content. BCMS generates TypeScript interfaces from your templates so editors, agents, and your codebase share one schema.

    • Types from your content model

      Run the CLI and BCMS writes TypeScript interfaces for entries, meta, and content into your repo. No hand-written CMS types.

    • Typed SDK, not guesswork

      Fetch with @thebcms/client, cast to generated entry types, and get autocomplete for fields your editors actually use.

    • Works across JS frameworks

      Same typed client for Next.js, Nuxt, Astro, Svelte, Gatsby, Vite, or plain Node. Types travel with the content, not the framework.

    What you get from a typed headless CMS

    Headless CMS TypeScript workflows: CLI typegen, @thebcms/client, framework-agnostic fetches, and a human editing UI.

    • Schema changes stay in sync

      Add a field in BCMS, pull types again, and TypeScript shows what broke. Content and code stay on one source of truth.

    • CLI type generation

      bcms --pull types --lng ts writes interfaces into /bcms/types. Hook it into npm scripts so every build refreshes types.

    • Official JS/TS client

      @thebcms/client handles entries, media, widgets, and caching. TypeScript types ship with the package and with your pulled schema.

    • Models that match components

      Widgets and groups map to reusable shapes. Render them as typed components instead of parsing loose HTML.

    • Locales in the type shape

      Multilingual content is part of the generated entry types. Editors translate in the UI. Code reads the locale it needs.

    • Safe for agents and humans

      Agents create and update entries over MCP with scoped keys. Humans edit in the dashboard. Both work from the same typed schema.

    Typed structured content

    Model in BCMS. Pull TypeScript types into /bcms/types. Query entries like any other typed module in your app.

    14-day free trial · No credit card required

    Generated TypeScript types

    Interfaces for every template, group, and widget. Import from /bcms/types and stop guessing field names.

    Inputs

    Strings, numbers, dropdowns, rich text, media, and more. Each property becomes a typed field on the entry.

    SDK fetch in TypeScript

    Use the official client in Server Components, loaders, or Node scripts. Cast results to generated entry types.

    Media

    Folders, previews, and typed media objects. Reference assets by path from code or from agent tools.

    Widgets

    Reusable content blocks with typed props. Embed in rich text and render as typed UI components.

    Groups

    Reusable shapes like SEO fields or author bios. Generated once, reused across templates with full typing.

    Multilingual TypeScript sites

    Manage content in any number of languages in BCMS, then render localized pages in TypeScript without awkward workarounds.

    General
    Docs

    Status

    Last updated 4 days ago

    Language

    English

    Links

    There is one other entry that links to this entry:

    10 Fabulous Infographics about JAMstack

    A picture is worth a thousand words, so let's see through these infographics what makes JAMstack so beloved.

    Publishing statuses for TypeScript

    Draft, review, and publish content in BCMS, then ship only what is ready into your TypeScript app.

    Frequently asked questions

    Common questions about using BCMS as a TypeScript CMS or headless CMS with TypeScript types.

    Is BCMS a TypeScript CMS like Payload?

    BCMS is a hosted headless CMS with first-class TypeScript type generation and a typed client. You model content in the browser, pull types into any TS project, and keep a client-friendly editing UI. You are not locked into a self-hosted Node CMS codebase.

    No. Types work with any TypeScript project that can import them: Next.js, Nuxt, Astro, SvelteKit, Vite, Gatsby, or plain Node scripts. The @thebcms/client SDK is framework-agnostic.

    Yes. Pulled types still help tooling and editors, and the client works in JavaScript. TypeScript is optional but is where BCMS shines for autocomplete and safer refactors.

    Update the template in BCMS, pull types again, and TypeScript will flag code that still expects the old shape. That is the point: content changes become compile-time feedback.

    Yes. Connect via MCP with scoped API keys. Agents create and update entries against your templates. Clients edit the same entries in the UI. Permissions control what each side can change.

    Install @thebcms/client and @thebcms/cli, set BCMS_API_KEY, pull types, and fetch an entry. Or scaffold a framework starter with the CLI. The trial is 14 days free.

    No. Docs, starters, and a free trial are available. Contact us if you want direct support.

    Alright. Enough pitch.

    14 days free. About 13 seconds. Zero demo tax.

    14-day free trial · No credit card required