# 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](https://www.thebcms.com/docs/inside-bcms/templates.md)

### Media library

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

→ [Media](https://www.thebcms.com/docs/inside-bcms/media.md)

### Team collaboration

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

→ [Permissions & Roles](https://www.thebcms.com/docs/inside-bcms/permissions.md)

### Entry statuses

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

→ [Statuses](https://www.thebcms.com/docs/inside-bcms/content-statuses.md)

### Helpful docs

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

→ [Docs Home](https://www.thebcms.com/docs.md)

---

## 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](https://www.thebcms.com/docs/inside-bcms/widgets.md)

### Nested folders

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

→ [Media](https://www.thebcms.com/docs/inside-bcms/media.md)

### Model content in the browser

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

→ [Templates](https://www.thebcms.com/docs/inside-bcms/templates.md)

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

Multiple users can edit the same entry at once.

→ [Team Collaboration](https://www.thebcms.com/docs/inside-bcms/settings.md)

### Framework Integrations

Start with BCMS + your stack of choice:

- [Next.js](https://www.thebcms.com/docs/integrations/next-js.md)

- [Nuxt](https://www.thebcms.com/docs/integrations/nuxt-js.md)

- [SvelteKit](https://www.thebcms.com/docs/integrations/svelte.md)

- [Gatsby](https://www.thebcms.com/docs/integrations/gatsby-js.md)

- [Astro](https://www.thebcms.com/docs/integrations/astro.md)

### Multilingual Support

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

→ [Localization](https://www.thebcms.com/docs/inside-bcms/localization.md)

---

## What only BCMS does

### Custom functions

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

→ [Functions](https://www.thebcms.com/docs/extending/functions.md)

### Granular permissions

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

→ [Permissions](https://www.thebcms.com/docs/inside-bcms/permissions.md)

### 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](https://www.thebcms.com/starters/next/)

- [Nuxt](https://www.thebcms.com/starters/nuxt/)

- [Gatsby](https://www.thebcms.com/starters/gatsby/)

- [Svelte](https://www.thebcms.com/starters/svelte/)

- [Astro](https://www.thebcms.com/starters/astro/)

→ [Starters](https://www.thebcms.com/starters.md)

### Fine-grained API keys

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

→ [API Keys](https://www.thebcms.com/docs/inside-bcms/api-keys.md)

### Fast global search

Search across all content, instantly.

→ [Search](https://www.thebcms.com/docs/inside-bcms/global-search.md)