tldr:

Databases are all built for scale, at the cost of ease of use. "UntitledDB" is a new database that is built primarily for usability, making it effortless for anyone to capture, analyze, and display data.

It includes user friendly features like front-end forms (like Typeform), data viz/graphs, and customizable views (like tables/kanban boards) - combined with powerful features like built in GraphQL/REST API's, automatic backups, and full-text search. Kind of like Firebase meets Airtable.

I would love to hear your feedback and thoughts on this. Have you faced issues or problems with your database? What hacks are you using to collect, visualize, or display data? Please let me know at [email protected]

Observations & Problem:

I've worked on many different projects, as a freelancer, engineer, and founder. I've found that when it comes to building software, there are often simple and easy solutions to otherwise complex problems.

For example, when building a website, you could setup a kubernetes cluster and write a custom server and deploy it in a docker container. Or you could build a static site and and host for free on GitHub pages or Netlify. Better yet, just use Webflow.

When creating for mobile, you could write native apps in swift and kotlin. Or use Expo and easily publish a cross platform app in a few hours.

When it comes to backends, you could write complex server apps, microservices, containers... Or just use severless functions and not deal with the hassle of it all. In fact, Darklang is a neat project that's making it even easier to create backends.

When it comes to databases, I initially assumed something like Firebase would do the trick. However, the more time I spent with it, the more I realize that this really isn't the case. The reason is simple - the simplest things require writing code.

The best example of this is if I simply want to know how many things I have in my database, there is actually no way to know. I have to write a custom function that easier loops through and gives me a count, or keep track of events and update a counter when something happens. Either way, it's time and effort, and a barrier of entry for those who don't want to code. I inquired about this on Twitter, and someone from the firebase team was actually kind enough to answer. The response was enlightening - that counting the number of records while trivial at first, can before more of a problem the more you scale - and in order to keep the experience consistent for all users, they only include features that work across any scale.

It's not just this of course. If I want to have people full out a form, I have to use Google/typeforms and then maybe connect to Google sheets and then sync that with a db? If I want to visualize it, I'll have to write code or once again figure out some third party tool. If I want to create a rest or graphql apis, I'll have to create a server and write tons more code.

And I think here is the core problem. Every database that we use today is built for incredible scale, at the cost of usability. Small startups, projects, and apps will most likely use MySQL/Postgres/Mongo/etc even though these databases are built with millions of records in mind, because this is the only option we have.

The alternative, of course, is to not use a db, and use something like Airtable or Google sheets. But these have their own issues - the apis are bad, querying and filtering are limited, and eventually I'll be forced to migrate to a db anyways, which will be a hassle.

Solution

Over the past couple weeks, I've been conceptualizing a new kind of database. One that is designed for usability and built for everyone. (Think Firebase meets Airtable.)

For coders, it means a quick setup, automatic backups, built in REST/GraphQL API's, and effortless full-text search (like Algolia) - reducing overhead and minimizing the amount of code to write.

For everyone else, it means easily creating front end forms that add directly to the DB, beautiful front end interface to view data, and graphing/charting capabilities for visualizing.

Say you wanted to built an early ProductHunt prototype. You could create a front-end form so anyone can submit products, analyze the data with user friendly graphs & data-viz tools, and then display the top products using a customizable, built-in public facing interface. Best part part is, when you are ready to start building, you have direct access to your database, with built in API's and automated backups.