Looking for work! Check my resume here.

· 3 min read

Directus Insights Are Not Mature

Directus itself is a great headless CMS but its Insights feature is not mature.

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.

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
Share:
Back to Blog
FYI: This post is a part of the following project.