# Key Differences: What Sets BCMS Apart?

Not all headless CMSs are created equal. Here’s how BCMS compares - and where it stands out.

## What most Headless CMSs do

BCMS does too - and often better.

### Content modeling

Use over 10 input types to define content structure.

→ [Templates](/docs/inside-bcms/templates)

### Media library

Upload any digital file. Organize with folders. Preview, crop, and reuse assets across content.

→ [Media](/docs/inside-bcms/media)

### Team collaboration

Invite users, assign roles, and collaborate in real time.

→ [Permissions & Roles](/docs/inside-bcms/permissions)

### Entry statuses

Label entries as drafts, in review, or published. Customize statuses to fit your workflow.

→ [Statuses](/docs/inside-bcms/content-statuses)

### Helpful docs

You’ll find up-to-date documentation and tutorials across every topic.

→ [Docs Home](/docs)

---

## What most CMSs can’t do

BCMS handles these from day one.

### 🧩 Widgets in rich text

Insert structured content - like image galleries or embeds -between any text blocks.

→ [Widgets](/docs/inside-bcms/widgets)

### Nested folders

Organize media and entries into folders. And folders inside folders.

→ [Media](/docs/inside-bcms/media)

### Model content in the browser

No need to write config files. Define templates visually inside the dashboard.

→ [Templates](/docs/inside-bcms/templates)

### 🧑‍🤝‍🧑 Multi-user entry editing

Multiple users can edit the same entry at once.

→ [Team Collaboration](/docs/inside-bcms/settings)

### Framework Integrations

Start with BCMS + your stack of choice:

- [Next.js](/docs/integrations/next-js)
- [Nuxt](/docs/integrations/nuxt-js)
- [SvelteKit](/docs/integrations/svelte)
- [Gatsby](/docs/integrations/gatsby-js)
- [Astro](/docs/integrations/astro)

### Multilingual Support

Add content in any number of languages. No plugin needed.

→ [Localization](/docs/inside-bcms/localization)

---

## What only BCMS does

### Custom functions

Write native functions directly in BCMS. Trigger them from forms, buttons, or actions.

→ [Functions](/docs/extending/functions)

### Granular permissions

Control access per field, entry, group, or action. Built in for every plan.

→ [Permissions](/docs/inside-bcms/permissions)

### Full TypeScript support

BCMS generates TypeScript types for your templates, entries, and widgets, on the fly

Just import them from @thebcms/types.

### Code starters

Launch fast with production-ready starters for:

- [Next.js](/starters/next)
- [Nuxt](/starters/nuxt)
- [Gatsby](/starters/gatsby)
- [Svelte](/starters/svelte)
- [Astro](/starters/astro)

→ [Starters](/starters)

### Fine-grained API keys

Generate keys with exact access scopes for public or private use.

→ [API Keys](/docs/inside-bcms/api-keys)

### Fast global search

Search across all content, instantly.

→ [Search](/docs/inside-bcms/global-search)