· 3 min read
Directus Insights Are Not Mature
![Directus itself is a great headless CMS but its Insights feature is not mature.](/_astro/directus-insights-are-not-mature.CG_9911r_2lSIfF.webp)
I’ve made two previous posts using the tagline X is not mature and both of those technologies were soon updated after I published. I am honestly hoping the same happens again with the insights features in Directus.
What is Directus Insights
Directus Insights is a no-code feature of the Directus CMS to quickly put together dashboards and/or charts from your data. You still need understanding of the underlying database to use it but it abstracts away all the boilerplate required to fetch data from your database and coerce it into the format required by the particular chart or metric for presentation.
What’s Wrong?
Ultimately, the abstraction they use has some limitations and therefore the dashboards you can build are limited. There have been recent updates at the time of writing, but it still suffers from sporadic unexpected errors and lacks some features I would deem necessary to be practical.
Chart Labels on Related Tables
First, the Directus insights does not allow for a user selected column to be used as the display value in charts requiring a JOIN
. So while the chart displays what you want to see it becomes useless in practice because the chart’s text displayed to the user is only the ID of the related table row. Any end user approaching this dashboard does not want to see an uuid or random digit when really they want a pie chart with product categories or usernames.
Unstable
The Directus insight dashboards are particularly unstable with global relational values. These values allow the user to select an item from a table which you can use in other dashboard components to filter charts, lists, metrics, etc. However, often times the dashboard will error out when it loads or when the user changes this value requiring a refresh of the page.
Impractical List Limits
The list component has an Impractical design limit forcing you to select the max number of items to display without pagination. For a non-technical end user this could hide the possibility that items are removed to comply with this arbitrary limit. Plus, the list component is not a proper table so it does not do well to display structured data and quickly overflows the screen making it less attractive for any usecase that may display unknown numbers of items. It feels arbitrary and like a short-sighted design in my opinion.
Conclusion
The insights features have a lot of potential and for the most basic usecases is fine. But, usecases requiring more than 1 or 2 tables joined it falls short.
I’ve written extensions for Directus to get around it but the learning curve to write these extensios make me believe now that it may be better to exclusively keep Directus as a great CMS and backend and let other framewoks do the dashboards and presentation outside of Directus for best results.
- directus