Instant is the easy to use backend for your frontend. With Instant you can build delighful apps in less than 10 minutes.
Try the demoTo build an app you write two kinds of code. The business logic that solves your specific problem, and the generic stuff that most apps have to take care of: authenticating users, making queries, running permissions, uploading files, and executing transactions.
The generic stuff is critical to get right, full of edge cases, and also not the differentiating factor for your app — unless they’re broken
If all this work isn’t differentiating, why work on it?
Instant gives you a database with queries, transactions, auth, permissions, storage, real-time and offline support. All in a simple SDK you can use directly in the browser.
Here we implement chat using three functions: `init`
, `useQuery`
, and `transact`
Want to try it yourself? Build a full-stack app in less than 10 minutes.
import { init, tx, id } from "@instantdb/react";
const db = init({
appId: process.env.NEXT_PUBLIC_APP_ID,
});
function Chat() {
// 1. Read
const { isLoading, error, data } = db.useQuery({
messages: {},
});
// 2. Write
const addMessage = (message) => {
db.transact(tx.messages[id()].update(message));
};
// 3. Render!
return <UI data={data} onAdd={addMessage} />;
}
The best apps today have a common feature set. Every interaction happens instantly, you rarely see loading screens, collaboration is easy and delightful, and the app still works when offline. When you use Instant, you get these features for free.
When apps are at their best, every change a user make should reflect instantly. There should be few spinners, loading states, or refresh buttons.
To do this today, you write custom code for endpoints, logic to apply optimistic updates, and to handle rollbacks.
Databases already know how to apply changes and handle rollbacks. With Instant, you write `transact`
, and optimistic updates are handled for you.
Users seek collaborative experiences and sync across devices. To get this right, you need to set up sockets, cache and invalidate queries, and set up permission filters.
Instant takes inspiration from systems like Figma’s LiveGraph and Linear’s sync. We built the infrastructure that listens to transactions, and updates relevant queries.
Users want your app to work even when they're offline. Not only does this make your app available everywhere, it makes your app feel faster. The first time your app loads, users see a loading screen. Every load afterwards gets satisfied by the local cache.
To support this, you need a way to apply changes locally, persist to disk, and reconcile when users come back online.
Instant comes with this logic baked in: the local database knows what is committed to the server and what is pending. No need to deal with queues.
When we started building Instant we wanted something great for builders. We wanted to offer a generous free tier where projects aren't limited or paused. To make this work we built Instant to be multi-tenant. This means you can spin up a new database in less than 100ms.
Turns out when you make something great for humans, it also works great for agents. Combine a multi-tenant database with a platform SDK and you have infrastructure that lets an agent have a backend for every chat.
We wrote an essay to go deeper on what we mean. If this interests you and your team we'd love to chat.
Instant is built by senior and staff engineers from Facebook and Airbnb. We spent multiple years thinking deeply about this problem and have built a product that we believe is the future of application development.
We're backed by YCombinator, SV Angel, and top investors like: