kapsys-logo
Contact Us
Back

Basic Strapi Tutorial: From Installation To Customization

April 19, 2024 by Daria Andrieieva
  • User Experience
strapi tutorial

In web development, managing content is crucial. Whether you're building a personal blog, an e-commerce site, or a sophisticated web application Strapi empowers developers to create, manage, and distribute digital content efficiently. Join Kapsys in this comprehensive Strapi tutorial as we embark on a journey from installing CMS to configuring it for your project's needs.

 

Sign up to our blog to stay tuned about the latest industry news.

What is Strapi 

Strapi is an open-source headless Content Management System (CMS) that enables developers to build robust APIs quickly and easily. Unlike traditional CMS platforms, the Strapi tutorial follows a "headless" approach, which focuses solely on providing a backend infrastructure for managing and delivering content via APIs without dictating how the content is presented on the front end.
 

Read: Why Strapi CMS Is A Popular Choice For Developers

What is Strapi

Strapi Core Features 

Here are some critical aspects of Strapi:

Headless architecture

Strapi tutorial decouples the content management backend from the frontend presentation layer. This allows developers to use any frontend technology or framework they prefer, such as ReactVue.jsAngular, or mobile applications.

Customizable content types

Strapi allows developers to define their content types, models, or schemas with custom fields and relationships. This flexibility enables developers to tailor the content structure to the specific needs of their project.

API-first approach

Strapi is designed with an API-first mindset, meaning that APIs are central to its architecture. Every content type created in the Strapi tutorial automatically generates RESTful or GraphQL APIs, providing developers with a seamless way to access and manipulate content programmatically.

User-friendly interface

While developers primarily interact with Strapi through code and APIs, it also provides a user-friendly admin panel for non-technical users to manage content efficiently. This admin panel allows content editors to create, update, and delete content without writing code.

Extensible and scalable

Strapi tutorial is highly extensible and can be customized with plugins and middleware to add functionality. It also scales effortlessly, whether you're managing a small blog or a large-scale enterprise application.

Secure and robust

Strapi prioritizes security and offers features such as role-based access control (RBAC), authentication, and data validation to ensure your content is safe and compliant with industry standards.

 

Read: Strapi Update: What's New?

How to Set Up Strapi 

Before starting the Strapi tutorial, ensuring your development environment is ready is essential. Strapi is a dynamic, headless CMS built on Node.js, allowing developers to craft and manage content APIs in a more streamlined and scalable way. Let's begin the setup process.

Pre-requisites

Ensure that Node.js and npm (Node Package Manager) or Yarn are installed on your system. This Strapi tutorial is compatible with the following Node.js versions:

You can download and install Node.js from the official Node.js website. npm is included automatically with Node.js installation. Alternatively, if you prefer using Yarn, you can follow the instructions on the Yarn website to install it.

Step 1: Install Strapi CLI

Open your terminal and install the Strapi CLI globally by running the following command:
 

npm install strapi@latest -g

Step 2: Create a new Strapi project

Navigate to the directory where you want to create your Strapi project and run the following command:

strapi new my-project


Replace my-project with your desired project name.

Step 3: Choose the installation type

After running the command in the Strapi tutorial, you'll be prompted to choose an installation type. There are several options available, including:

  • Quickstart (recommended): Set up a new project with a SQLite database for rapid development and testing.
     

  • Custom: You can manually configure the database, server, and authentication options.

For this tutorial, select the Quickstart option by pressing Enter.

Step 4: Start Strapi

Once the project setup is complete, navigate into your project directory:
 

cd my-project


Then start the Strapi server:
 

npm run develop

Step 5: Access the Strapi admin panel

Open your web browser and go to http://localhost:1337/admin. You'll be prompted to create an admin account. Fill in the required details to create your admin account.

Step 6: Set up content types

Once logged in to the admin panel, the next step in the Strapi tutorial is to create your content types by clicking on the "Content-Types Builder" plugin in the left sidebar. Define your content types, add fields, and configure permissions according to your project requirements.

Step 7: Explore APIs

Strapi automatically generates RESTful and GraphQL APIs based on your content types. You can explore these APIs by navigating to http://localhost:1337/{content-type} in your browser or using tools like Postman. These APIs allow you to programmatically retrieve, create, update, and delete content.

Step 8: Customize and extend

The Strapi tutorial is highly customizable and extensible. You can customize the admin panel, add plugins, integrate with third-party services, and implement custom business logic to tailor Strapi to your specific needs.

 

Read: How To Monetize Your Projects In Strapi CMS?

deploy strapi

How to Customize Your Project

Customizing your Strapi application can involve several different approaches depending on what aspects of the application you want to modify or extend. Now, let's look at the Strapi tutorial on customizing your project.

Customizing the admin panel

Strapi's admin panel can be customized to match your branding needs or improve your content editors' user interface. Here's Strapi's tutorial on how to approach this:

  • Custom Logo: You can replace the Strapi logo with your own to maintain brand consistency across your tools.
     

  • Custom Themes: Modify the colors and styles of the admin panel by overriding the default stylesheets. After extending the admin panel, you would typically do this by editing the files in the ./admin/src/ directory.

Customizing APIs

Strapi allows you to customize the APIs it generates automatically. You can modify the default controllers, services, and routes to change how the API behaves:

  • Controllers: Customize the logic that handles the incoming requests. For example, you can modify a controller to add additional data processing before it gets saved or retrieved from the database.
     

  • Services: Services are where the business logic of your application should be kept. Customizing services allows you to alter the fundamental behaviors of API operations.
     

  • Routes: Customizing routes lets you change endpoints, add new parameters, implement specific middleware, or restrict access.

Read: Strapi API Development: A Step-by-Step Guide

Custom fields and components

Creating custom fields and components enhances the content editing experience by providing UI elements that are specific to your application's needs:

  • Field Types: Develop custom fields for content types if the existing field types do not meet your requirements.
     

  • Reusable Components: Create reusable React components that can be used across different parts of your admin panel.

Developing plugins

If you need functionality that goes beyond simple customization, with the Strapi tutorial, you can develop new plugins:

  • Create a New Plugin: Use Strapi's CLI to scaffold a new plugin. This plugin can have its own backend logic, database models, and React components for the admin panel.
     

  • Integrate with External Services: Plugins can also be used to integrate your Strapi application with external APIs and services, adding to the versatility of your application.

Read: How To Create Custom Strapi Plugins

Hooks and lifecycle events

Utilize Strapi's model lifecycle hooks to execute custom code at specific stages of the lifecycle of your models (e.g., before saving a model, after fetching it, etc.). This is particularly useful for:

  • Validation: Add custom validation that runs before an entry is saved.
     

  • Notifications: Send notifications or perform other side-effects whenever changes are made to the data.

Read: Building a Simple Strapi Custom API

Additional Best Practises

Setting up Strapi efficiently and ensuring its optimal operation involves more than just following the installation and configuration guidelines. Here are some less-discussed but critical best practices that can significantly enhance the performance, security, and maintainability of your Strapi tutorial.

Use environment variables for configuration

For security and flexibility, keeping configuration settings outside your codebase is essential. Use environment variables to manage database connections, API keys, and other sensitive information. This approach helps secure your configuration, especially when deploying to different environments (development, staging, production).

  • Example: Store database credentials and API keys in environment variables and access them in your Strapi configuration files using process.env.YOUR_VARIABLE.

Efficient media handling

Strapi's built-in media library is convenient, but managing media efficiently is crucial as your application scales:

  • Use External Storage: Instead of storing media files directly on your server, use external storage services like Amazon S3Cloudinary, or Google Cloud Storage. This approach reduces the load on your server and can improve content delivery through CDN integration.
     

  • Optimization Plugins: Utilize plugins to automatically optimize images and other media types for different devices and contexts, reducing bandwidth and improving load times.

Use docker for development and deployment

Using Docker can simplify setting up consistent development, testing, and production environments. It can encapsulate your Strapi application and its environment:

  • Dockerize: Create Docker containers for your Strapi application to ensure it runs the same way, regardless of the environment.

Read: Setting Up Strapi on Docker: Efficient Deployment and Scaling

strapi build command

Conclusion

Strapi is a powerful tool for developers building modern, scalable applications with a customizable CMS. Following the steps outlined in this Strapi tutorial, you've learned how to install CMS, create a new project, define content types, add content, and access your data through an API. 

 

As you become more familiar with Strapi, you'll find that its flexibility allows you to tailor your projects to your exact needs, making it an excellent choice for your development toolkit.

 

Keep up with Kapsys to learn all about the Strapi and other leading CMS! Happy coding!