Directus called itself "the leading Headless Data Platform", which is layers on top of any new or existing SQL database and introspects the schema, providing both GraphQL+REST APIs and a beautiful and intuitive GUI app ideal for technical and non-technical users.
You probably get the idea already. It is the world's leading modern, open-source data platform software.
In this post, I will give you my opinion about Directus from a developer's perspective. I have used it in one of my hobby projects. I liked it and planning to do more with it.
Why you might need this?
Any modern web project requires storing, managing, connecting, searching visualizing data. Directus provide all of that. It is a developer toolkit that enables you to develop virtually any data-driven project.
Writing the backend of any project requires a lot of time and resources. Using Directus, you will get instant API for all your data.
Authentication and authorization are hard to implement. Directus gives you built-in authentication and Role Based Access Control for your data. You can create different roles and configure permissions for all CRUD operations. You can also manage users and assign them to any role you wish. So, if you are thinking about API about login or password resets, it is there.
In, the Data Model interface, you can model your database tables visually just like you normally do in any SQL database GUI. But in Directus, you can have much more options for: schema (relationship, constrain), field, interface (e.g autocomplete, map), display, validations, etc.
A file manager is built-in where you can store files, edit images, create virtual folders, and configure storage using a local file system or S3-compatible service. Its file API gives you on-the-fly image resizing capability which also supports custom image transformation presets.
Now, imagine how much time you need to rebuild all of those features. You want to build the backend with an admin panel very quickly right? You should try Directus. It has also JS SDK, which helps you to interact with its API from any frontend framework.
But wait, rather than using only CRUD operations, you should implement your own business logic at the backend right? You can extend Directus and write custom endpoints, hooks, layouts, etc. It uses Node.JS in the backend and Vue.JS in the frontend for Data Studio.
It has all the great features, documentation is not bad, but lacks tutorials. They have a strong active community.
Every Directus project comprises 3 layers
- Data layer. Any new or existing SQL database. No vendor locking
- Data Engine & API (REST & GraphQL) for developers. It inspects database schema and provides you instant API, full CRUD (Create, Read, Update and Delete) operations, authentication, Role Based Access Control (RBAC), workflow automation, asset transformation, and much more.
- Data Studio. A beautiful no-code app for business users to browse, manage and visualize data. Technical users can model all the data and complex relationships using the GUI (Graphical User Interface).
Common use cases for using Directus
- Headless CMS
- Backend with Admin Panel
- Building Internal Apps and Business Intelligence
- SaaS Applications
- Robotics and IoT devices
Free cloud hosting instance
They have completely free cloud options where you can get an instance very quickly to get started or build a proof of concept. They have also paid options.
Their source code is open on GitHub and you can install it on your own server like any node.js app. Also, their docker image is available on the docker hub.
Official Website: https://directus.io/