When it comes to building a web application, there’s a lot to consider. One such consideration is where your users’ data is stored in your application’s pipeline. The most popular storage options today are Postgres, MongoDB, Firebase, etc. We pick a database depending on our application’s needs.
EdgeDB is a relatively new database that offers a lot of features out-of-the-box. Writing queries in EdgeDB feels like writing GraphQL queries, where you write your queries in a hierarchical fashion. Modeling data is easy, too. No longer do you need to think too much about primary keys. Just create a type, add fields, and link it with other types if necessary. And that’s easy. EdgeDB supports polymorphic data modeling out-of-the-box; you can create base types to extend types. And it’s very powerful. But EdgeDB is not just a database built on top of Postgres. It’s a development stack. It comes with a beautiful UI for visualizing complex relations between your defined types. It comes with authentication and access control built-in. It allows for context-aware queries by setting global variables. It has RAG support built-in for your data. And it’s built on a proven and scalable technology, Postgres. With EdgeDB, the possibilities are endless.
So, we decided to go with EdgeDB.
Webble utilizes the following features from EdgeDB:
- Authentication
- The edgedb-js query builder which allows for writing composable queries
- EdgeDB cloud for simple deployment
For authentication, EdgeDB comes with a simple-to-use interface for implementing authentication. In your EdgeDB schema, it just takes a few lines of code to enable authentication. Once authentication is enabled, you have the option of building a custom authentication UI or using the EdgeDB-provided UI. The EdgeDB UI is easy and customizable. But for Webble, we decided to build our own UI, though we easily could have opted for the EdgeDB-provided UI. Given that Webble uses Remix, setting up authentication was simple with the @edgedb/auth-remix
package.
When deploying Webble, we decided to use Vercel and EdgeDB because it was quick and easy to set up. After registering for EdgeDB Cloud, all we needed to do was link the EdgeDB Cloud instance to our Vercel project and have the environment variables configured for us. Deploying our migrations was simple too, requiring just a single command to run.
Overall, the experience of using EdgeDB versus using other disparate technologies is unmatched. For Webble, the EdgeDB experience is not just good enough, it’s superior. So, it was sensible to use EdgeDB to build Webble. If you would like to give EdgeDB a try, check out the EdgeDB documentation.