Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
@strapi/strapi
Advanced tools
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
@strapi/strapi is an open-source headless CMS (Content Management System) that provides a flexible and customizable way to manage content. It allows developers to create, manage, and distribute content across any device or platform. Strapi is built with Node.js and offers a powerful API, a user-friendly admin panel, and a plugin system to extend its functionalities.
Content Types Builder
Strapi allows you to define and manage different content types (e.g., articles, products, users) through its Content Types Builder. This feature provides a flexible way to structure your data models.
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::article.article');
RESTful and GraphQL APIs
Strapi automatically generates RESTful and GraphQL APIs for your content types, enabling you to interact with your data through standard API endpoints.
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::article.article');
Authentication and Permissions
Strapi includes built-in authentication and permissions management, allowing you to control access to your content and APIs based on user roles.
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::user.user');
Plugin System
Strapi's plugin system allows you to extend its core functionalities by creating or installing plugins. This makes it easy to add new features or integrate with other services.
module.exports = {
register({ strapi }) {
// Register a new plugin
},
bootstrap({ strapi }) {
// Bootstrap the plugin
}
};
Admin Panel Customization
Strapi provides a customizable admin panel where you can manage your content, configure settings, and install plugins. You can also customize the admin panel to fit your specific needs.
module.exports = {
async bootstrap({ strapi }) {
// Customize the admin panel
}
};
KeystoneJS is another headless CMS and GraphQL API for Node.js. It offers a similar set of features, including a flexible content schema, an admin UI, and authentication. However, KeystoneJS is more focused on providing a GraphQL API and has a different approach to schema definition and customization.
Directus is an open-source data platform that provides a headless CMS and API for managing content. It supports both RESTful and GraphQL APIs and offers a user-friendly admin interface. Directus is known for its flexibility and ability to work with existing SQL databases, making it a good alternative to Strapi.
Contentful is a cloud-based headless CMS that offers a robust API for managing and delivering content. It provides a user-friendly interface, powerful content modeling capabilities, and a wide range of integrations. Unlike Strapi, Contentful is a SaaS product, which means it is hosted and managed by Contentful, whereas Strapi is self-hosted.
Sanity is a headless CMS that offers real-time collaboration, a flexible content model, and a powerful API. It provides a customizable editing environment and supports both RESTful and GraphQL APIs. Sanity is known for its real-time capabilities and developer-friendly features, making it a strong competitor to Strapi.
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.
Read the Getting Started tutorial or follow the steps below:
Install Strapi with this Quickstart command to create a Strapi project instantly:
yarn create strapi-app my-project --quickstart
or
npx create-strapi-app my-project --quickstart
This command generates a brand new project with the default features (authentication, permissions, content management, content type builder & file upload). The Quickstart command installs Strapi using a SQLite database which is used for prototyping in development.
Enjoy 🎉
Complete installation requirements can be found in the documentation under Installation Requirements.
Supported operating systems:
(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 |
---|---|---|
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 | 5.7.8 |
MariaDB | 10.6 | 10.3 |
PostgreSQL | 14.0 | 11.0 |
SQLite | 3 | 3 |
We recommend always using the latest version of Strapi stable to start your new projects.
You can unlock additional features such as SSO, Audit Logs, Review Workflows in Strapi Cloud or Strapi Enterprise.
Please read our Contributing Guide before submitting a Pull Request to the project.
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:
Follow our migration guides on the documentation to keep your projects up-to-date.
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.
See our dedicated repository for the Strapi documentation, or view our documentation live:
See for yourself what's under the hood by getting access to a hosted Strapi project with sample data.
See the LICENSE file for licensing information.
FAQs
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
The npm package @strapi/strapi receives a total of 79,356 weekly downloads. As such, @strapi/strapi popularity was classified as popular.
We found that @strapi/strapi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.