If you’re following the new hot developments in TypeScript infrastructure, you may have heard of Drizzle by now. Bytes.dev recently had a great piece on it, summarizing the reasons why Drizzle is a breath of fresh air for the space and those looking for alternatives to Prisma.
In particular, Drizzle fully embraces TypeScript and allows you to define your schema in a type-safe manner, without an intermediate representation or code generation.
Their approach also does not necessitate a companion server process, meaning it is a great fit for environments susceptible to cold starts, or where running external processes can prove challenging, like serverless and edge.
Users building with Drizzle are also going to the Edge
Turso is a database designed for the Data Edge, built by the creators of libSQL, the Open Contribution fork of SQLite. Although the Edge and serverless are not the same thing, there is a huge overlap between them.
If you are a developer that wants to move your data to the Edge, you can give Turso a try. You will be able to create replicas all over the world, and automatically be routed to the closest one from any Edge and serverless provider.
Drizzle already provides excellent support for SQLite as a dialect, and you can keep developing your application locally and just push your data to the Edge when you are ready to serve your users.
How Turso users benefit from Drizzle
The Edge has fewer resources and more constrained environments than the cloud. In particular, I/O is usually disallowed, except for HTTP and Websocket connections. That means your database must be accessible through those channels, as opposed to traditional database protocols.
One immediate effect is that tools up the stack, such as ORMs and schema management, have to implement those protocols to support a particular database, and not only support its query language (which in this day and age will invariably be one of MySQL, Postgres or SQLite)
Turso uses libSQL as an efficient and inexpensive tool to replicate your data close to where your users are, and makes the SQLite query language accessible over HTTP and WebSockets. Drizzle plays very well with that approach, so the success of Drizzle means more people can have a better experience when using our product.
Keeping an ORM alive
Monetizing an ORM is tricky. Ask yourself honestly as a developer: out of those of you who use an ORM, which I assume to be the majority, how many of you want to pay for an ORM?
Still, developing software, especially great software, takes lots of resources. Now you have two options. 1) you build a whole business tangentially to your software, but that benefits from its adoption enough to justify the continued investment on it. Or, 2) you end up with a group of capable and motivated volunteers doing their best in their free time as an OSS project.
To the best of my knowledge, the Drizzle team is not doing this thanklessly. The Twittersphere has been happy to shower them in praise. But that doesn’t pay the bills.
They are also not in Nebraska. They are in Ukraine, a war-torn country fighting for their independence against a clear aggressor. And in the middle of that turmoil, still fighting to bring us a quality top-notch product that developers love.
We could just ask them to add support to our database, (which we did). We could also just write a large portion of the code ourselves and contribute engineering time (which we also did).
But for us, the sustainability of OSS is important. Our company benefits from the success of Drizzle, and we think Drizzle users will also find value with Turso, so we should also help them keep it sustainable.
We are proud to be their first corporate Gold Sponsors, and we are hoping not the last. If you are also a company benefiting from Drizzle, or an individual that wants to support their work, we invite you to join us and do the same.
We are currently in private beta, and you can join the waitlist on our website. You can also star the libSQL project on Github, and join our Discord to talk about Edge, databases, or anything you’d like!