Background and Motivation


A vast majority of the private apps being built has 3 needs:
  1. 1.
    A way to authenticate users securely
  2. 2.
    A way for authenticated users to store data
  3. 3.
    A way for the app to query that data
If you think of this as a state management problem:
  • An app consists of some state that the users set (user space)
  • The business value of the app is a function of that user space
A few examples:
  • MVP of Ebay is a function of all of the listings that users create and all of the bids that users submit.
  • MVP of Strava is a function of all the runs a user has done.
  • MVP of a ride-sharing app is a function of all of the riders locations + all of the drivers locations at a given point of time. aims to give a generalized solution to this problem my providing a:
  • A Managed authentication solution
  • Key-Value store unique to each authenticated user
  • A query language for a developer to map-reduce the entire user state, and distribute that result to all users
The solution is delivered with first-class support for React and React-Native, with the hope that vast majority of the apps will not have to write a single line of backend code to launch a working product.

Motivation was born out of the pain we've had to endure creating dozens of apps.
The sheer amount of decisions I've had to make and the setup code I've had to write when setting up auth, writing some CRUD APIs, and consuming those APIs from a client (React) app was daunting.
Although there are other managed-backend-as-a-service solutions out there, nothing quite ticked all the boxes I wanted it to tick:
  1. 1.
    Managed authentication
  2. 2.
    Authentication aware data store (so a user can change their data store, and their data store only)
  3. 3.
    Query support to ask interesting questions from the data store. (For example, what's the total number of completed todos for all users today)
  4. 4.
    Some nice abstractions on React so I don't have to set-up something like Redux, all the time.
So, we set out to build UseCloudState as a solution we'd use for my own projects.
Copy link