Ben Haynes: We aim to be as flexible and extensible as possible with escape hatches and, of course, being open-source and white label. The goal here is to make sure that we can lay this foundation that will last within your project or organization for five, 10 years plus. That's a very difficult ask at the project or the business level, but that's what we're striving to build. Eric Anderson: This is Contributor, a podcast telling the stories behind the best open-source projects and the communities that make them. I'm Eric Anderson. We're joined today by Ben Haynes, who's going to tell us all about Directus, which is a critical part of the modern data stack. Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database. I think of it, Ben, as an admin interface on steroids. How does that sound? Ben Haynes: That sounds very accurate to me. I think that was the original inspiration actually, so on point. Eric Anderson: Well, Ben, you've got quite a little project on your hands here, big project. Directus has grown massively over the last few years and the leading admin interface, for lack of a better word. Tell us maybe just really quickly what, or how, you would describe Directus and then we want to get into the history of how it came to be. Ben Haynes: I mean, the struggle you had with categorizing it is something that we often run against, because we straddle a number of categories in our capabilities and what we're doing. But at large, we're referring to it as an open-data platform. It is essentially a platform that layers on top of any SQL database and provides a toolkit for developers all the automation, connectivity, APIs they need. Then also, includes a data studio where we're essentially democratizing that database. We're providing a no-code data collaboration studio where anyone, technical, non-technical, can go in and browse, manage, visualize what was traditionally locked behind the doors of IT, anything in that SQL database. Lots of use cases, lots of categories that we straddle, as I said, but a lot of potential and a lot of interested developers. Eric Anderson: If I'm building an application that involves a SQL database, regardless of what it is, I can bolt on Directus and get the ability to describe schema visually. I can administrate actual elements of the data. I can dive into the contents of the data graphically, find records, manipulate them. This is all the stuff that I would just get as this sidecar experience that comes with Directus. Ben Haynes: Exactly. I think a key difference here is that you don't have to be building. You could already have that database. Again, a word I'll probably bring up a lot during this talk is unopinionated, or agnostic. We really are big on adapting to the technology stack of the developer and not making them beholden to our technology choices. A big part of that is embracing the database, the architecture, the database vendor that those engineers have chosen. We can layer on top of existing data stores and provide the same functionality. There's no proprietary way that Directus stores things. It's equally valuable to those legacy data stores, or an existing project that you need to add these capabilities to after the fact. Of course, we enable people building new projects as well, but the best of both worlds. Eric Anderson: Let's get into how this happened. I think you were the heart of the story, so I imagine the Directus story is a bit the Ben Haynes story. How far back do we go? Ben Haynes: A while. Definitely, the heart, and pretty much all of it in the beginning, which was just really exciting. It's going back about 18 years at this point, I was 2004, which just is crazy to me. Technology doesn't last that long at the conceptual level, let alone at the software level. It's really interesting to me that we've been able to craft this concept that's withstood the test of time, very similar to things like SQL. SQL's been around for a while, it's still very relevant today. I think keeping things very simple has been a big part of this history of how we've built the software. But going back to 2004, I was running an IT consultancy out of New York City, small boutique studio, but we were doing projects for Google, and Prada, AT&T, SoulCycle, Snapchat. Ben Haynes: These are larger companies, as well as smaller SMBs and cultural institutions, but no real rhyme or reason to the actual projects we were building. Digital experiences, installations, internal tools, whatever was required, just trying to be on the cutting edge or the bleeding edge even of innovating with these projects. What I found within our agency and other agencies that I had been working with was there was just so much boiler plate that was being created to get the foundation ready for these projects, so much connectivity and the data store, the authentication security. Then once you've dealt with all that, you can get into the innovative side, the presentation and what you're actually trying to craft. Ben Haynes: Then beyond that, once you've completed your entire deliverable, you're handing it off to whoever that might be, I mean, the US government in some cases for projects that we did, the end user needs a way to administer that project. They can't simply go in and just work in the database as we did on the engineering side. We were building a lot of bespoke tools, a lot of custom admin portals to manage and author content or assets and data. One of the big reasons for this platform was how can we take all of this repetitive work, this inefficiency, and build something that was opinionated but flexible and extensible enough to power these different solutions and not be a jack of all trades, master of none, but more of a toolkit that we could leverage internally? Ben Haynes: We found great success with that. Of course, fast forward, we open-sourced it, et cetera. But the real primer for this platform was, ironically, there's database administration tools, notably one called phpMyAdmin. We use quite different and more modern tools now, but I looked at that platform and I said, "This is what we're using to architect the database, to browse and manage data. Why can't we create this gooey for the database but make it simple, safe and intuitive enough where engineers, data scientists and completely non-technical users can all go in and have this access?" That's where things started. A while back, I did the first five versions, I believe, myself, and then handed it off to more capable hands on my team. Eric Anderson: I imagine the original thinking was I have this problem, this will help me do better IT consultancy, I'll be able to do more projects and manage them. At some point, you thought that maybe this could be something bigger, it could be an open-source project, or even its own company. How did that transition happen? Ben Haynes: It was a real eye-opening moment and it actually was one project. We took on a project for a very small, I think it was a one studio, company at the time, I think it was 2011, 2012, named SoulCycle. They had a handful of people working there, and essentially they needed to upgrade their data systems. They needed to build a foundation to handle this growth that they were seeing. They had a data store, had tens of millions of records in it. They were actively growing and doing upwards of thousands of requests per second at times. We came in and we found a lot of value that we could provide with this software. The eye-opening moment was really this lack of diligence that was required to make that decision. We were able to layer on top of, seamlessly, their existing data store. We were able to provide capabilities out of the box same day that would've taken months or a year plus to build custom. Ben Haynes: We were able to do so in an open and extensible way, so that they wouldn't see a feature ceiling 12 months down the line as the business continued to grow. But what was really interesting to me is the expansion from my mindset of using it as a content authoring platform, which is just how we used it internally in those early days, to it's just the database. That really coalesced this idea that you can manage inventory and allocation, point of sale, bike maintenance, studio scheduling, content, of course, and IOT devices with these different kiosks and studios. All of this disparate data that is very interconnected relationally could all be managed in this single source of truth. That was just a very impactful moment for me to realize, wow, this is something really big that needs some additional attention here. Eric Anderson: We've talked to others who have a similar story. I think a chef project from Adam Jacob similarly started with somebody who was doing consultant work and managing lots of clients, and then built a tool that would allow him to do it much more efficiently. I guess one pitfall in that transition is when do you give up the IT consultancy and decide you're all in on the product or the project? Was that a hard line to cut for yourself? Ben Haynes: It would've been, almost certainly, if that line had remained a little bit more linear. As it stood, I actually went through some M&As with another New York based firm, and then we were acquired by AOL, which months later rolled into Verizon. It was this whirlwind of M&As where I ended up in a corporate position. I was there for a while and it was exciting, but I'm just, I guess, more of an entrepreneur at heart. I knew I had this IP in my back pocket, and going through the meetings on that corporate side and speaking with the leadership there, there was just this urge to go back and focus on that. My agency had been shuttered to an extent. It rolled into this larger picture. Ben Haynes: I had some conversations and I said, "You know what? My focus, my desire is really to build this premium open-source platform, to really think about all those things that I learned on the previous decade of iterating through versions within my own agency and take that to the next level, build an actual commercial business and make this a sustainable, but still very true to the spirit of open-source, project." I stepped away, spent a few years ... I'd met my co-founder serendipitously directly after leaving that more corporate position. We focused for years, almost in a stealth mode, rebuilding and modernizing the platform completely from the ground up in TypeScript. Ben Haynes: That brought us to about a year ago, we closed a seed round and that enabled us to go from a two person open-source organization to a 15 person business where we are now growing quite quickly. I think we actually just passed 20 million Docker downloads a few weeks ago, which is a huge milestone. Also, on NPM and GitHub, there's just so many amazing metrics that we've seen cascade recently in the last 10 to 12 months. But, of course, there's a huge history here of what we're building on top of which some of the more nascent vendors, they're not falling back on that knowledge and vast amount of use cases and experiences. I'm very thankful for that. Eric Anderson: Given all the episodes we do, I see a lot of GitHub star charts. Most of them are pretty linear, and I actually don't know why. Someone needs to figure out the research on why they're so predictable, but yours is a little unpredictable in that it's super linear. Directus is growing faster than it's ever grown, it seems to me, in terms of developer adoption. What's driving that, in your perspective? I'm sure there's a lot that people could be excited about, but anything that other folks could learn to replicate? Ben Haynes: I mean, we really believe in that product-led growth mentality. Build the best product, don't put paywalls in there, don't over-commercialize it or add artificial limitations. Just really being developer first, embracing their decisions and tech stack, that's been our guiding light. I think that helps us put a best foot forward in terms of our developer community, which is growing very quickly. When we look at the star chart, it's interesting you say it's linear. I mean, it's definitely relatively linear if when you zoom out over such a long period of time that we've been around, but there's some pretty notable 1,000 star spikes here and there. Those are directly attributed to very small ... Like, I've got a Saturday. Let me post, on Reddit, our programming, or let's talk about this on Product Hunt, where we hit the number one spot by votes. Ben Haynes: It was three or four different events that I've just manually had a couple extra hours to swing myself. It resonates with developers. Of course, the real interesting aspect of this is the network effect. When you get into a Reddit community and you drive that interest and people can download it easily and find that value without a lot of hurdles, that cascades very quickly to a few stars maybe on GitHub. It doesn't take a huge amount, when you have those eyeballs, to get on a trending page, whether it's the type script trending page, or the global GitHub explore page, their overall trending. Of course, that cascades out to just more clicks, and very quickly you can get some pretty sizable bumps. Ben Haynes: It's my most important metric. I've got charts and I've got it right here on my status bar on my computer, 17,265. Every milestone we pass there is just so meaningful to us. We're passing huge multi-billion dollar competitors or other vendors out there that have a lot more marketing dollars. We're just grassroots-ing it right now, but it's working well. We're just passing down to that threshold of top 1,000 repos across GitHub. With 300 million code bases on that platform, it's just really exciting to have gotten here with so little, to just be so efficient and automated. Eric Anderson: Earlier, you talked about how you aren't easily bucketed in traditional categories and that you ... Maybe another way to describe that topic, what do people do with Directus today? What are use cases, or exciting customers of late, that we can help ground the discussion for folks? Ben Haynes: It's really interesting. To touch on the use cases first, there's a lot of digital experiences. I've been surprised. We just released some co-marketing with Supabase, which is an amazing platform. There's an overlap between our services, but I think what was most interesting there is they're purely data. It's just a data store and they're powering a lot of digital experiences. That's a lot of what they're doing. There's a lot to be said about content and how you can properly manage content, but what we've seen is you need to go beyond that horizon at some point in your growth. You need to start building in some metadata or some pure data. That's why it's so important for us to remain a data platform. We're not a headless CMS. We're equally powering digital experiences, applications, internal tools. Ben Haynes: We're in the IOT space with Bose and in a number of larger customers, AR and VR data, really everything. I mean, you can look at all sorts of different leasing systems and inventory and allocation. It's all data. It all needs to be managed. You can't necessarily go out and just Google a leasing data platform and find an excellent result. Laying this proper foundation has really helped us provide a baseline. We're going to give you 80% of the functionality you need out of the gate and we're going to play well with others. It's a hub and spoke model, different from the monolithic approach or the microservice approach, which is, of course, more modern. Microservice is great, but it adds a lot more complexity. We're aiming to be a hub that plays well with others and you can integrate with Stripe or Salesforce or anything else you might need. Ben Haynes: That's giving us a leg up and allowing us to work with some great customers there: Copa Airlines, AT&T, Saunder, the US government, Juilliard for eLearning, Trip Advisor. We have a great testimonial about bringing data together across all these different teams. There's a number of even larger Fortune 10 companies that I can't even disclose. It's exciting times, and that's the tip of the iceberg. When you're talking about 20 million downloads on Docker, there's a huge number of lone star developers just doing hobby projects, SMBs and mid-market. There's just so much to unpack there and we're really excited to gather more telemetry and understand what are the three or four pillar use cases we can really focus on in the short term to not be a mile wide and inch deep? How can we really provide the best experience and value to what's most relevant to our customers and users? Eric Anderson: Digital experience is maybe a good term. It reminds me, I guess, that these companies don't operate just a single application. It's not the Juilliard application and you slap on Directus, but everybody is spinning up new software projects all the time in order to offer an experience, whether it's a new mini-application, or a marketing event, or a marketing initiative. Any one of those may have a Directus instance and a SQL database to power it, or they may have a Directus instance that taps into an existing, much larger SQL database project. Ben Haynes: Absolutely. I mean, you can scope things however you want. I have to say, unopinionated, again, there's customers that use it on a per project or a per team base. You have to scope it based on a project or power an entire company. It's really up to you how you partition off your data, how many data stores you have, environments, et cetera, but the one commonality is it's your data. It's your data store, whether it's existing data, new data, you control the SQL vendor. PostgreSQL, MySQL, Cockroach, SQLite, Oracle, however you want to store your data, and including your schema and your architecture, you maintain that. Ben Haynes: There's no proprietary vendor lock-in. At the end of the day, it's all just data. I'm going to do some huge air quotes here with future proof. I know this is audio only, but we aim to be as flexible and extensible as possible with escape hatches and, of course, being open-source and white label. The goal here is to make sure that we can lay this foundation that will last within your project or organization for five, 10 years plus. That's a very difficult ask at the project or the business level, but that's what we're striving to build. Eric Anderson: You said something earlier that would be good to touch on, and that relates to something I think a lot of open-source founders have to wrestle with, and that is how much of this do I put in the open and how much do I leave in some kind of proprietary? You've biased towards open, it sounds like. Maybe you can tell us how you navigate some of those decisions in the past and how you're doing it now. Ben Haynes: As you formalize a company, it becomes increasingly difficult as you bring on investors and people who are revenue focused. It's been very important for us to make sure that along this journey we found partners that see our vision, that are aligned with our ethos of truly maintaining an open-source mentality, having that spirit, not limiting the on-prem installations at all, embracing that, and even going so far as to offer a free cloud service that also ... It's not production ready. Maybe it's for proof of concepts, hobby projects, et cetera, but the goal is to bring that spirit to everything that we do. That can be very difficult to hold onto when you're trying to meet revenue goals and build something that's sustainable. Ben Haynes: Again, my balancing act is really how can we ensure we can deliver premium open-source software without those paywalls and limitations, or switching into a dual license or anything like that, but also make it sustainable so that we can grow our engineering team, that we can grow our support and success for our users and customers? I think I'm huge on metaphors. There's two things that I always fall back on when I'm speaking to this. One is a rising tide lifts all ships. We have a huge developer community and so much room to grow there because of the breadth of these use cases. If we can just foster that advocacy and build these evangelists by really showcasing value and not locking them out from features, then that's going to impact our entire ecosystem. Ben Haynes: If you have some percentage of monetized users, if you can grow that base, you're going to get that revenue, that monetization on the bottom of the funnel. Then the other side of it is really how we get there. That's icing on the cake. My goal is to make sure that every aspect of the cake itself remains completely free and open-source, and premium, well tested, stable, et cetera, and that we're continuing to add capabilities to that cake. But, of course, everybody wants the icing. We can add-on non-core features. We are not going to gate security or any of that, but we can add on these really nice features and options that can be premium, that can be commercialized through our SaaS, or through an upcoming marketplace. Ben Haynes: I think that's a better approach to making sure that users can really leverage the platform. I mentioned a lot of public sector and financial institutions, individual developers that just don't have a budget. You need to support them on prem, allow them to build it on their Arduino, or their Raspberry Pi, or on Naval Ships, whatever it might be. It's all very intrinsically tied together. I think that's my vision for how we push forward, always testing. There's always tests in terms of how can you maintain that balance. That's TBD, but I think we're doing a pretty good job so far. Eric Anderson: Certainly. Shifting gears a bit, I imagine a lot of our listeners are developers themselves and are keen to figure out if this is something they could use and how. Maybe we could go into some of the features, capabilities of the product. I'm willing to bet that every developer's got a half dozen projects in their head that they're working on, and one of those seems like it maps, at least, to Directus. What are the things that people normally latch onto as utilities that they see initially? Ben Haynes: I mean, we're always pushing the envelope in terms of releasing new capabilities to the platform. But every single project out there, regardless of what you're building, there's data behind it somewhere, whatever that data looks like. There's a lot of opportunity for us to embrace that and give tools. Again, going back to my metaphors, we treat our platform as a carpenter's tool belt. These are very simple tools: the hammer, screwdriver, drill, saw, et cetera, that when you bring those together, you can build almost anything. That's similar to how SQL works. There's not a million glued together features that get piecemealed into a Frankenstein. It's a simple toolkit that lets you have very performant, flexible operations you can perform. We take our platform and we've distilled it down to this idea of browsing, managing, visualizing, connecting and automating your data. Ben Haynes: That's a bunch of different buckets, but they're all very important to distinguish. That's how we've separated out how we align those tools. Browsing data, different from visualizing. Visualizing is about aggregate data and charts and looking at the big 10,000 foot view, but a lot of times you might need to browse data, whether you're browsing articles and content form, or items on a map, et cetera. The ability to take your data store and instantly install this software and browse data in a calendar map, kanban table, media view, whatever is most relevant to your data, that's a great win right out of the box. You take that a step further, you enter some of those data records, those items as we call them, and you can manage them. We're taking the fields of the database and we're building out forms that you can customize and giving you 60 plus interface options that, of course, you can create your own in view. Ben Haynes: But how can you manage that data in a way, of course, through access control, et cetera? We're building visualization that certainly goes beyond the typical CMS, which is why we're not really in that category at all. But these are features that content authors can still leverage. How do I visualize my most popular posts? I want to see a time series or a meter of my hardware. How hot is my CPU running? It's whatever data you throw at it, let's visualize it. You can still go use Tableau, Power BI, what have you, but we want to give you that baseline of functionality. Connecting is all about the APIs. We provide REST+GraphQL APIs. Again, unopinionated. You can get those custom endpoints. You've got every option that you need for fetching and pushing the IO of that relational data. Ben Haynes: The last is automation. That's actually something we just released a few weeks ago with a feature called Flows. This is automation of workflows where it's a trigger based system, and whether that's an inbound web hook, a cron schedule, a data CRUD operation, or a button being pressed in the application, really any event can then cascade out to a number of actions or operations that gives you endless flexibility with conditions, and alerting, and ETL, extract, transform, load. All this different optionality in terms of what you can do to automate this data, build workflows to say, "Hey, this content needs approval. This data needs to be updated and synced with Stripe when customers are generated," or what have you. Just a taste of the big pillars that we're supporting within our data engine, the back into the service as it were, and the data studio, which is the no-code collaboration app. Eric Anderson: Maybe two questions as we wind down here. One would be tell us about the state of the community today. Where do people engage? What could people contribute if they want to get involved? Then two, where are you going from here? What is the future hold for the project, be it features or community? Ben Haynes: Excellent. I mean, the current state of the community is amazing. Even when it was a couple thousand people, we were just so pumped. It just always seems surreal to me to have taken something, you just build it. I mean, that's what developers love, is you can just build something from nothing and then you can attract other like-minded folks. But we're sitting at about 65,000 plus folks in our community across a number of platforms, most notably Discord. We've got a bunch of folks on there just actively talking, asking questions, engaging, answering questions. It has a life of its own. You can find that at directus.chat, a little URL shortener there. Then, of course, GitHub is our main hub for our code base and our community, so that engagement. That is where we're reporting any issues you might come across, really focusing on testing right now and stability to make sure that we're shifting from that super innovative 15 steps forward, two or three steps back with regressions. Ben Haynes: We want to shift to 10 steps forward, zero steps back, just make sure that we're really improving that overall experience as we iterate through our versions. Very social across Twitter and bringing on some new folks there to focus on that front. I think we're just shy of 50,000 followers there, so that's an exciting platform that we're pushing. But, I mean, that's where the community stands right now. It's really exciting to see all the engagement. What we are doing, we've always seen a lot of pull requests. That's awesome, but we have to make sure that as we shift into this idea of stability, we're not ... The code just has to be exactly what it needs to be. That's shifting to more of a formal RFC process where the code goes ... We talked about what that pull request looks like beforehand. Nobody wants to get this pull request, a lot of work's been put into it and it gets closed because it's just not a good fit for whatever reason. Ben Haynes: We've got an 80/20 rule to make sure we stay very clean and maintainable in our code base. Then, most excitingly, where we're going from here, we are actively growing the company. We're at this really nice inflection point that's super exciting. Some details coming out on that in the short term. But I'm very product-focused, so even more exciting to me are a few of the things that we're actively working on. On the product side, we're looking at real time data. How can we have this moving from pulling every three or 10 seconds and asking for data? How can we make our APIs and our app actually real time with web sockets? We're very far along in that process and excited to be announcing and releasing that very soon, as well as some pretty exciting things on the cloud front. Right now, we provide a full end-to-end infrastructure on our cloud SaaS. Ben Haynes: Again, free tier, self-service, standard tier and enterprise for everything else, but we can always do more. We're providing that serverless database, but why not allow you to really have authority and ownership over your data store? Remote data connections, so you can use our SaaS, but on top of your self-hosted or on-prem data store, that gives us a hybrid cloud functionality that's just really exciting to think about. It opens up a lot of doors there, as well as partnerships. Those are a handful of the things that we're working on. I think the biggest thing, as I mentioned, is a little bit more boring in terms of testing suites and end-to-end and stability docs, guides and the like. But it's going to be an exciting few weeks, few months and few years, so stay tuned for sure. Eric Anderson: Testing suites in docs sound boring until you hit a bug or you need an answer, and then you're very grateful for both. Fantastic. I am also very excited about what the future holds because you seem to be at an inflection point, like the community's at a certain state, the products just emerging in terms of the cloud product. A lot of things to look forward to. Anything, Ben, we didn't cover that you would like to cover today? Ben Haynes: No. I mean, we covered some good ground. I mean, I think always just looking for people to try it out. We are not a sales and marketing organization. We're just now starting to hire those just to keep up with some inbound demand, but we've hired engineers first by design. We lead with our product. We're very proud of what we've built. I would just urge anybody out there to just go try it out, download it through NPM or Docker, or just even easier, it takes about 90 seconds, you can get a free community project up and running on our cloud, just authenticate through GitHub and you're good to go. Try it out, check out the demo and let us know what you think. That's what it's all about. Eric Anderson: As a final question, I should have asked this earlier, tell us about the name Directus. How did you come up with that? Were there any preliminary names before it? Ben Haynes: It's an interesting, and almost embarrassing, story. Directus now, it's Latin for putting things into organized straight lines. A lot of people capitalize the U and it's Direct Us, which is a little pet peeve. I'm like, "No, it's just Latin." But either way, it actually stemmed from 20 years ago, a less mature me. We were replicating file systems and data stores and all that, and it came from DIR, the idea of the directory. Of course, DIR is the absolute worst name you can imagine, but this seemed like a natural progression. The early days are always a little interesting for a software company. The first version I did was actually an action script before we moved to the LAMP Stack, and then, of course, luckily over to JavaScript TypeScript, but some interesting starting points there. I'm a designer and creative by trade, and so we've really focused on the branding, the gooey, the UI and UX. I've been happy with the progression away from DIR and two directives and the lovely little bunny branding that we have as well. It's all coming together nicely. Eric Anderson: No, I'm a fan of Directus and I definitely knew it had Latin roots. That's not lost on most of us, I don't think. Ben Haynes: I won't expect any capital U's from you then, Eric. Thank you. Eric Anderson: Good. Ben, thanks so much for coming and I look forward to watching the project from here. Ben Haynes: Absolutely. Thanks for having me, Eric. I appreciate it. Eric Anderson: You can subscribe to the podcast and check out our community slack and newsletter at contributor.fyi. If you liked the show, please leave a rating and review on Apple Podcasts, Spotify, or wherever you get your podcasts. Until next time, I'm Eric Anderson and this has been Contributor.