Skip to content(if available)orjump to list(if available)

Directus – real-time REST and GraphQL API of any SQL database

jckahn

Directus has its small-scale and short term benefits, but I can’t recommend building a production-grade app with it. My company uses Directus and we all hate it and are desperately trying to get away from it. Avoid.

jaros

I’m in a similar situation. At first it looked very promising and was benefiting us in bootstrapping the project fast but after a while you’re being slowed down by the “extensions” ecosystem. If you have a bunch of complex extensions then building all of them can take 2 minutes (m3 pro MacBook). Forget instant hot reloading.

tjwds

Out of curiosity, what don’t you like about it?

jckahn

Off the top of my head: It surfaces only useless GraphQL error messages to the front end, it’s very frustrating to stand up custom REST endpoints, and the Flow system is painful to develop with and debug. Others on my team have different gripes with it.

Davidiusdadi

Since they support so many databases the integration with specific providers is very shallow - e.g. they do not allow to make use of SQL views.

I personally found the typescript support disappointing in general but specifically around strict null handling. Their graphql schema was also declaring far to many fields as nullable which was a deal breaker for me looking for at least one way to generate precise typescript typings.

golergka

How does it measure up to Hasura?

RadiozRadioz

Had a play around with it, I'm impressed. I was very worried and put-off when I saw the nice-looking UI and flashy transitions, but this actually plays quite nicely with my database.

Unfortunately it doesn't work on Firefox 115 ESR due to

    Intl.Segmenter is not a constructor
It's just a blank screen. So it is infected by the JS change treadmill somewhat.

I have a few other thoughts from my first try:

When using Directus on a pre-existing DB, your foreign keys need to have exactly the same type as the primary keys they are referencing for Directus to pick up on the relationship. For example, if you have `customer.id INT PRIMARY KEY`, you must reference it with `order.customer_id INT FOREIGN KEY REFERENCES customer (id)`. You cannot do `order.customer_id INT NOT NULL FOREIGN KEY REFERENCES customer (id)` , else Directus won't notice.

I also found it fairly slow to pick up on schema changes I made in the DB directly, and I didn't see an obvious way to force it to discover.

When using Directus to manage the DB schema, I found the tables it created to have a generally sane and simple schema, which is refreshing. I liked the choices here more than nocodb.

I can't comment on the REST/GraphQL generation. I'm mainly interested in the admin panel features.

The compose file they provide here works: https://docs.directus.io/self-hosted/docker-guide.html

Overall I think this works best if your data model is very clean. It would probably be painful to onboard a complex legacy DB. I think this is totally fine as a small-scale org data management tool. I was going to make one of these, but I don't need to now. Thanks for sharing.

aerhardt

I wouldn't use anything like this to build it a user-facing app, but how does it compare to something like Django admin?

xvinci

Microsoft has something very similar (i did not do a full feature comparison, just speaking about apis and auth) which is mit licensed. Works also with on-prem databases despite it's name. https://github.com/Azure/data-api-builder

masonwr

I have had great luck with Directus building small/medium size apps. Keep up the good work!

denvrede

Does anybody know something like Directus (building REST APIs on top of Postgres) with the ability to hook in custom authorization logic? (E.g. to do FGA checks before returning data)

bigjump

Pretty sure you can do this with hooks / flows in Directus.

4ndrewl

This seems very similar to Hasura? What does it compete with them on?

null

[deleted]

Keyframe

seems cool, but weird non-oss license ahead warning.

lol768

It used to be actual FOSS but then they went down the route of making it nonfree.

I sort of get why, but not really a fan of how they went about doing it (and arbitrary "revenue-based" thresholds really don't work for businesses that operate on a commission/agent basis - you can have a massive turnover but huge cost-of-sales - it's a very blunt instrument). For that reason I've kept self-hosting the older, actual-FOSS versions and they're just sat behind auth. I've not looked at alternatives yet but would be interested in any suggestions

yladiz

It’s free for individuals and organizations that make less than $5 million in revenue. Seems fine and not weird to me?

rustc

And the price is "Contact our sales team" [1] for self hosting for those with > $5 million revenue. Seems like not a good idea if you think you're ever going to reach that number.

They also considerably increased their cloud hosted pricing from $25/month unlimited to $500/month for 10 user + 250k rows + 1 million API requests.

Old pricing: https://web.archive.org/web/20220619075129/https://directus....

[1]: https://directus.io/pricing/self-hosted

speedgoose

If a fair offer, but it’s not open source compatible.

yladiz

Sure, but am I missing something and it says it’s open source?

luke-stanley

It's not a normal license. It's not worth the hassle.

the_real_cher

I think like me you saw the cloud section and thought it was a paid product for a minute.

pacifika

If you’re dealing with pure SQL of a third party system, instead of an API, then you’re designing the API without domain knowledge. This is a problem in my experience.

null

[deleted]