What is Directus?
If you’re reading this, you are probably looking for a new platform/CMS to manage your content, or you’re just getting started with Directus and want to learn a little more about the project. In this article, we’ll cover the general concept of Directus, what this Headless CMS talk is all about, and why Directus is (or maybe isn’t) the ideal content solution for your next project.
Directus is a free and open-source headless CMS framework for managing custom SQL-based databases. It consists of a web app to manage content and an API that allows developers to connect that authored data to a range of different clients, such as websites, native apps, kiosks, IoT devices, or any other data-driven project.
Directus was first released in 2006 as a Flash-based database administration GUI under the working title “dir”. Subsequent versions were written in PHP with a focus on content and asset management for custom-schema databases. The current version (v6) was rewritten from the ground-up as a backbone.js based web app — with the server side decoupled to allow for easier porting to other languages.
Traditional CMS are built specifically to quickly deploy and manage websites — typically simple sites and blogs. However, today’s content is consumed by a much wider range of applications, including complex web platforms, native apps, wearables, kiosks, IoT devices, Arduino/Pi experiments, and any other data-driven projects you can think of.
Content should be created and managed independently from the place it will be used. By decoupling and authoring application-agnostic content, you gain the freedom to use it anywhere. Moreover, you can use it everywhere, since you are no longer limited to a single platform.
Directus differs from other CMS in that it directly mirrors your database — essentially making it a safe and client-friendly database GUI. Instead of your content being stored in a proprietary blackbox datastore, Directus gives you complete control over optimizing the actual database architecture based on your specific project needs. Whether managing an existing or new database, Directus and its API will always stay up-to-date with any schema changes.
Accessing Your Data
Directus only manages your database, not your project, so it doesn’t stand between you and your content. All system info is stored in separate tables, so your data always remains pure and unmuddled. There are three ways to access your data:
- Directus API
You can use our RESTful API to make calls to endpoints and get your data in a JSON format.
We have a growing number of language-specific SDKs available. These SDKs provide you with the convenience of the API in the programming language of your choice.
- Direct to Database
You can always connect directly to your database and get the data with any other method you prefer. Since Directus doesn’t impose a proprietary schema, your data isn’t mangled like it is with other CMS.
Simple and Intuitive Interface
The Directus user experience has been carefully honed for over a decade — therefore managing your content is so simple and intuitive that it requires no training. Each interface allows you to manage content based on a wide variety of data types, like colors, locations, currencies, ratings, and many more.
Alongside the flexibility of working with value-based content, Directus has a powerful file-manager built in which allows you to use it as a digital asset management system. And with a powerful thumbnailer included, you can automatically get images in any size/quality from a single upload. To learn more about the thumbnailer, read our article explaining it in more detail: Directus Dynamic Thumbnailer.
Modular and Extensible
Directus makes no assumptions about how you might use it, and therefore imposes no limitations. From tweaking the CMS style to custom code triggered by event hooks — everything you interact with inside the admin application can be modified to suit your needs. Directus even has a powerful set of tools which allow developers to create custom add-ons for the platform, such as new ways to enter data (How to Create a Custom Interface), ways to view or modify the data in specific ways (How To Setup A Custom Extension), new API endpoints, and many more.
Directus works on just about every server configuration that runs PHP, MySQL and supports some form of URL rewriting. The easiest way to get started is to install Directus locally or on a “standard” LAMP server setup. Checkout our guide on installing Directus on LAMP: Installing Directus on LAMP for more information.
If you have a Directus setup up and running, checkout our User Guide — A Tour of Directus for more information on using the platform!
What great projects are you going to build with Directus? Let us know in the comments below or join us on our Slack channel!
Your friends at Directus