
* feat: chat feat: apply changes feat: integrate with ctb feat: marker chore: remove comment feat: new chat feat: copy message feat: upload modal feat: upload file feat: errors and stop chat chore: refactor transforms chore: format relations chore: chat title chore: remove architect dependency feat: empt state chore: improve text area focus * feat: chat imports feat: resizable text area fix: re add chat chore: translations feat: env vars fix: minor chat issues feat: feedback fix: rebase feat: import folder feat: limits feat: attachments dropzone chore: file attachments cleanup chore: track chat id feat: figma import fix :token feat: figma token fix: attribute status when chat makes updates feat: image upload * feat: staging integration * chore: remove logs * feat: use tool call result instead of annotation * fix: invalid component uid * chore: chat input focus ring * fix: ui issues * fix: default draft and publish and do not modify singular name * fix: minor transforms * fix: linting * test(front): update snapshots * chore: fix misplaced getstarted project schema * chore: remove unused import * security: validate exact path of host * fix: define process better for playwright to work * fix: process env in vite config for playwright * chore: use production url * feat(ctb): Tracking events for AI Chat interaction (#23731) * feat(content-type-builder): WIP tracking events for chat interactions * fix: typescript build errors * fix: event name and build errors * chore: send ai key with analytics * chore: actually send licenseKey * chore: send ailicensekey with groupproperties * fix: didStartNewChat * chore: track new chats * feat: enhance attachment type management in AI chat components * fix: update chat status handling in ChatProvider component * feat: add optional aiLicenseKey to Strapi interface --------- Co-authored-by: Jamie Howard <jhoward1994@gmail.com> * refactor: remove didusersendmessage tracking event (#23777) * fix: merge conflict * fix: send projectId to AI server * feat: add a enabled config for AI features (#24060) * feat: add getAiToken endpoint (#24172) * feat: add getAiToken route * fix: change route name, remove project id * fix: type issue and fix schema * feat: retrieve ai token from frontend (#24226) --------- Co-authored-by: Jamie Howard <jhoward1994@gmail.com> * fix: use primary500 for links in ai chat * chore: migrate to AI SDK v5 (#24252) * fix: migrate code for v5 * t:wq * feat: push schemas to ctb * chore: remove old code * chore: remove ts-no-check * chore: fix comment * fix: ai server logs (#24318) * test(back): fix error log tests --------- Co-authored-by: Marc Roig <marc12info@gmail.com> * fix: configure ai ctb csp middleware without overriding user or default config * future(upload): generate image metadata on file upload (#24365) * chore: create aiMetadata service with isEnabled * chore: extract getAiToken to service * fix: unit test * future(upload): generate metadata with ai * fix: ts build * fix: only send images to ai server * test: add unit tests * fix: unit test --------- Co-authored-by: markkaylor <mark.kaylor@strapi.io> * AI media lib bulk update (#24414) * feat(packages): adding endpoint for bulk update * feat(packages): linting * feat(packages): adding tests * feat(packages): cleanup * feat: guided tour for ai ctb (#24411) * feat(upload): adding aiMetadata into settings (#24468) feat(upload): adding aiMetadata into settings * feat: add AI upload modal (#24407) * chore: create aiMetadata service with isEnabled * chore: extract getAiToken to service * fix: unit test * future(upload): generate metadata with ai * feat: add AI upload modal * feat: add edit and delete to upload modal * fix: remove sparkle icon on edit * fix: add error handling * chore: refactor ai upload modal reducer * fix: catch ai token generation error * chore: add useBulkEdit hook * feat: connect to bulk edit endpoint * fix: e2e test * fix: ci in both ce and ee --------- Co-authored-by: Rémi de Juvigny <remi.dejuvigny@strapi.io> Co-authored-by: Rémi de Juvigny <8087692+remidej@users.noreply.github.com> * feat(upload): applying ai enabled logic for media library (#24486) feat(upload): applying ai enabled logic for media library * fix: sparkle icon * fix: set ai server prod url * fix: default config to enabled * fix: cursor moving to the end when editing text * fix: upload in the right folder * fix: close modal when deleting last item * chore: use STRAPI_AI_URL everywhere * fix: bulk upload from frontend * fix: restore sparkle icon on inputs * fix: unit test ci * feat(upload): generating metadata from thumbnail (#24515) * feat(upload): generating metadata from thumbnail * feat(upload): fixing linting issue * feat(upload): fixing tests and addressiing feedback * feat(upload): fixing lint * fix: check for cms-ai entitlement * fix: tests * fix: race condition failing front unit tests --------- Co-authored-by: Marc-Roig <marc12info@gmail.com> Co-authored-by: Ben Irvin <ben@innerdvations.com> Co-authored-by: Bassel Kanso <bassel.kanso@strapi.io> Co-authored-by: Ben Irvin <ben.irvin@strapi.io> Co-authored-by: Jamie Howard <jhoward1994@gmail.com> Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com> Co-authored-by: Bassel Kanso <basselkanso82@gmail.com> Co-authored-by: Ziyi <daydreamnation@live.com> Co-authored-by: markkaylor <mark.kaylor@strapi.io> Co-authored-by: Araksya Gevorgyan <31159659+araksyagevorgyan@users.noreply.github.com> Co-authored-by: Adrien L <thewebsdoor@gmail.com>
Open-source headless CMS, self-hosted or Cloud you’re in control.
The leading open-source headless CMS, 100% JavaScript/TypeScript, flexible and fully customizable.
Strapi Community Edition is a free and open-source headless CMS enabling you to manage any content, anywhere.
- Self-hosted or Cloud: You can host and scale Strapi projects the way you want. You can save time by deploying to Strapi Cloud or deploy to the hosting platform you want**: AWS, Azure, Google Cloud, DigitalOcean.
- Modern Admin Panel: Elegant, entirely customizable and a fully extensible admin panel.
- Multi-database support: You can choose the database you prefer: PostgreSQL, MySQL, MariaDB, and SQLite.
- Customizable: You can quickly build your logic by fully customizing APIs, routes, or plugins to fit your needs perfectly.
- Blazing Fast and Robust: Built on top of Node.js and TypeScript, Strapi delivers reliable and solid performance.
- Front-end Agnostic: Use any front-end framework (React, Next.js, Vue, Angular, etc.), mobile apps or even IoT.
- Secure by default: Reusable policies, CORS, CSP, P3P, Xframe, XSS, and more.
- Powerful CLI: Scaffold projects and APIs on the fly.
Getting Started
Read the Getting Started tutorial or follow the steps below:
⏳ Installation
Install Strapi with this Quickstart command to create a Strapi project instantly:
- (Use yarn to install the Strapi project (recommended). Install yarn with these docs.)
yarn create strapi
or
- (Using npx to install the Strapi project.)
npx create-strapi@latest
This command generates a brand new project with the default features (authentication, permissions, content management, content type builder & file upload).
Enjoy 🎉
🖐 Requirements
Complete installation requirements can be found in the documentation under Installation Requirements.
Supported operating systems:
OS | Recommended | Minimum |
---|---|---|
Ubuntu | 24.04 | LTS |
Debian | 11 | LTS |
RHEL | 9 | LTS |
macOS | 14 | 12 |
Windows Desktop | 11 | 10 |
Windows Server | No Support | No Support |
Docker | N/A | N/A |
(Please note that Strapi may work on other operating systems, but these are not tested nor officially supported at this time.)
Node:
Strapi only supports maintenance and LTS versions of Node.js. Please refer to the Node.js release schedule for more information. NPM versions installed by default with Node.js are supported. Generally it's recommended to use yarn over npm where possible.
Strapi Version | Recommended | Minimum |
---|---|---|
5.0.0 and up | 20.x | 18.x |
4.14.5 and up | 20.x | 18.x |
4.11.0 and up | 18.x | 16.x |
4.3.9 to 4.10.x | 18.x | 14.x |
4.0.x to 4.3.8 | 16.x | 14.x |
Database:
Database | Recommended | Minimum |
---|---|---|
MySQL | 8.0 | 8.0 |
MariaDB | 11.2 | 10.3 |
PostgreSQL | 16.0 | 14.0 |
SQLite | 3 | 3 |
We recommend always using the latest version of Strapi stable to start your new projects.
Features
- Content Types Builder: Build the most flexible publishing experience for your content managers, by giving them the freedom to create any page on the go with fields, components and Dynamic Zones.
- Media Library: Upload your images, videos, audio or documents to the media library. Easily find the right asset, edit and reuse it.
- Internationalization: The Internationalization (i18n) plugin allows Strapi users to create, manage and distribute localized content in different languages, called "locales"
- Role Based Access Control: Create an unlimited number of custom roles and permissions for admin and end users.
- GraphQL or REST: Consume the API using REST or GraphQL
You can unlock additional features such as SSO, Audit Logs, Review Workflows in Strapi Cloud or Strapi Enterprise.
Contributing
Please read our Contributing Guide before submitting a Pull Request to the project.
Community support
For general help using Strapi, please refer to the official Strapi documentation. For additional help, you can use one of these channels to ask a question:
- Discord (For live discussion with the Community and Strapi team)
- GitHub (Bug reports, Contributions)
- Community Forum (Questions and Discussions)
- Feedback section (Roadmap, Feature requests)
- Twitter (Get the news fast)
- YouTube Channel (Learn from Video Tutorials)
Migration
Follow our migration guides on the documentation to keep your projects up-to-date.
Roadmap
Check out our roadmap to get informed of the latest features released and the upcoming ones. You may also give us insights and vote for a specific feature.
Documentation
See our dedicated repository for the Strapi documentation, or view our documentation live:
Try live demo
See for yourself what's under the hood by getting access to a hosted Strapi project with sample data.
License
See the LICENSE file for licensing information.