What is @strapi/strapi?
@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.
What are @strapi/strapi's main 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
}
};
Other packages similar to @strapi/strapi
keystone
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
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
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
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.
API creation made simple, secure and fast.
The most advanced open-source headless CMS to build powerful APIs with no effort.
Try live demo
Strapi is a free and open-source headless CMS delivering your content anywhere you need.
- Keep control over your data. With Strapi, you know where your data is stored, and you keep full control at all times.
- Self-hosted. You can host and scale Strapi projects the way you want. You can choose any hosting platform you want: AWS, Render, Netlify, Heroku, a VPS, or a dedicated server. You can scale as you grow, 100% independent.
- Database agnostic. Strapi works with SQL databases. 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.
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:
yarn create strapi-app my-project --quickstart
or
- (Use npm/npx to install the Strapi project.)
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 🎉
🖐 Requirements
Complete installation requirements can be found in the documentation under Installation Requirements.
Supported operating systems:
- Ubuntu LTS/Debian 9.x
- CentOS/RHEL 8
- macOS Mojave
- Windows 10
- Docker - Docker-Repo
(Please note that Strapi may work on other operating systems, but these are not tested nor officially supported at this time.)
Node:
- NodeJS >= 12 <= 16
- NPM >= 6.x
Database:
- MySQL >= 5.7.8
- MariaDB >= 10.2.7
- PostgreSQL >= 10
- SQLite >= 3
We recommend always using the latest version of Strapi to start your new projects.
Features
- Modern Admin Panel: Elegant, entirely customizable and a fully extensible admin panel.
- Secure by default: Reusable policies, CORS, CSP, P3P, Xframe, XSS, and more.
- Plugins Oriented: Install the auth system, content management, custom plugins, and more, in seconds.
- Blazing Fast: Built on top of Node.js, Strapi delivers amazing performance.
- Front-end Agnostic: Use any front-end framework (React, Vue, Angular, etc.), mobile apps or even IoT.
- Powerful CLI: Scaffold projects and APIs on the fly.
- SQL databases: Works with PostgreSQL, MySQL, MariaDB, and SQLite.
See more on our website.
Contributing
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:
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.