·5 min read

From Idea to Platform, Story of Upstash

Enes AkarEnes AkarCofounder @Upstash

We've got two big updates from the last week. First, we announced our $10M investment led by Andreessen Horowitz. Second, we've launched Upstash Vector. Let's talk about what these changes mean for you and how we plan to use these funds to improve our products.

As founders (Enes-Mehmet-Bilal) who also happen to be developers, we've felt the frustration of using tools that offer a poor developer experience. High latencies, confusing setups, or lots of configuration, to name a few. This is why, two years ago, we started Upstash as a small team with the goal of creating the best possible developer experience for anyone using our tools. By introducing a completely serverless model, we wanted to eliminate the need to deploy and maintain databases yourself. Achieving this meant providing services like high availability, backups, or regular updates that you usually need to manage yourself out of the box. This also meant only charging for projects once they got real traffic, allowing anyone to get started quickly and scale as needed.

With this goal in mind, the first product we saw a need for was Upstash Redis. Providing a scalable, fast, in-memory data store for the serverless age is not an easy task by any means. But if we could make this happen and create an easy way to interact with this tool, we knew we could bring a lot of value to the serverless space. So that's what we did! We launched Upstash Redis in 2021. We were happy to see the adoption because it meant that you recognized the value of what we created.

Building on top of the momentum from Upstash Redis, our next launch was an easy-to-use Kafka system. From our developer background, we knew that Kafka is notorious for the unintuitive setup and the maintenance it expects you as a developer to perform. Therefore, one of our goals for Kafka was to remove the steep learning curve by choosing great defaults and reducing the configuration needed to get set up. This is a challenging balance to strike because, especially in enterprise applications, there are use cases where it's important to have access to all the detailed settings. So, instead of enforcing our idea of how Kafka should work, we worked out a way to quickly get started but with the full flexibility of configuring every aspect of Kafka whenever you need to.

After launching Kafka, we now had two products in our lineup. Shortly after that, a team member suggested creating a messaging queue for the serverless environment. We all liked the idea because, at that time, no available solution was both easy to use and working reliably to guarantee message deliveries to serverless endpoints. Eventually, this service became the third product in our lineup, and we called it QStash.

With three products that the community enjoyed using, we started to experience rapid growth from hundreds to tens of thousands of users, many of which had high data requirements, in a year. And this is where we are today. With a growing user base, we need to scale our products to maintain their high quality and performance. Many users also suggest their ideas on new features, for example via our discord server, to cover additional needs - which is a big part of how we'll use the funds I talked about at the beginning of this article. That includes:

  • Making Upstash products faster, more stable, and more powerful
  • Covering developer needs end-to-end
  • Providing high-quality customer support backed by more engineers
  • Building new SDKs to allow you to use Upstash in entirely new ways
  • Creating more blog posts, better examples & better documentation

This is where Upstash Vector, the newest addition to our product line, fits into the picture. With AI growing in popularity, so does the need for a reliable, fast vector database. While there are many options to choose from, most are either lacking in their developer experience, flexible pricing, or in their ability to handle large amounts of data quickly. To us, it always felt like a trade-off between cost and scalability: cheap options don't scale well and scalable options would rip a hole in your wallet. What if we could combine a high performance with the best possible developer experience and cost efficiency?

To find out, we created an entirely new data store purpose-built for vector operations instead of using our existing data layer. Also, instead of using HNSW for our vector search, which would increase the cost proportionally to the data size, Upstash Vector uses DiskANN and FreshDiskANN. This decision helps us achieve our obsession for performance at scale and also allows for flexible, pay-as-you-grow pricing that we think is so important for a good developer experience.

We are only at the start of our journey. We will keep evolving, keep listening to your feedback, and improving our products. We are so thankful for your support and confidence in us during this journey. We're always glad to hear your feedback - you can share it with us in our Discord community or on Twitter. We'd love to hear from you!