The platform for local-first software

Don’t write real-time APIs. Move your database to the browser. Homebase keeps local data in sync so you can build fast and collaborative React apps.

Faster than an API

Changes are pushed to clients in real-time. Read and write local data instantly, cache it forever.

Easier than JSON

Develop with a local database that's as capable as cloud DBs. Cut out your API and let homebase sync state and help you manage data flows.

Collaborative

Our system resolves conflicts automatically so you don't have to worry about realtime collaboration or offline support.

Built for devs

James Tamplin /
Co-founder & CEO

"Homebase is executing on the vision of data usage, portability, and management we had when building Firebase. We never got there. I'm excited!"

Todos.jsx
1
2
3
4
5
6
7
8
9
10
11
12
const [currentUser] = useCurrentUser()
const [project] = useQuery({ 
  project: { name: 'Build the thing' }
})
const [transact, errors, syncing] = useTransact()
const [ids, dbAfter, dbBefore] = transact([{
  todo: {
    title: 'Write more code',
    assignedTo: currentUser,
    project
  }
}])

Local-first case studies

Rewriting the Messenger codebase for a faster, smaller, and simpler messaging app

How Figma’s multiplayer technology works

Architecting a web app to “just work” offline

Integrations

GraphQL
React
Auth0
Stripe
SQL and Spreadsheet
Or build your own. Datahike is open-source and you can join databases locally or in your own private cloud.

Easy to use

Your DB is like Git now. Share it directly with the client. Replicate, fork, and join data from multiple Homebase databases. This is possible because of the automatic conflict resolution and built-in versioning of data. As a side effect of this data portability, you can eliminate many APIs and ETLs.

Attribute-level authorization simplified. Publishing of public APIs, end-to-end encryption, easy GDPR. It all comes by default when using Homebase + Datahike.

Create a DB right in React

Skip API development and start building with React and Homebase. It all starts in your browser. Setup is a few lines of code. Add schema, relationships and validations incrementally.

Reactively save data

Make your app feel native. Make it faster and work offline. Our consistency mechanisms make offline transactions as easy as transacting to a central cloud database.

Reactively query data

Don't wait on the network. We'll cache everything and automatically subscribe clients to changes.

Sync with Homebase

Homebase keeps your local and cloud data in sync so everything just works. No API needed. We'll back it up, sync it, and even help you authenticate and authorize users.

Go to production

When it's time to ship we make it easy. Homebase automatically builds dev and staging environments. In prod we've got you covered with telemetry and the first set of administration tools for local-first data. We love to sleep too.

Local-first data is smart data

Because it lives in multiple places it has to be encode extra metadata that enable many features you'd normally have to build from scratch.

Offline support and cross-device sync
On-device caching
Cloud-functions
Real-time collaboration
Versioning and blame tracking

Homebase platform

Reactively query relational data locally

Don't wait on the network. We'll cache everything and automatically subscribe clients to changes.

Todos.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { useCurrentUser, useQuery } from 'homebase-react'

const Todos = ({ project }) => {
  const [currentUser] = useCurrentUser()
  const [todos, errors, syncing] = useQuery({
    $find: 'todo',
    $where: {
      todo: {
        project,
        isArchived: false,
        assignedTo: { $not: currentUser },
      },
    },
    $sort: { todo: { createdAt: 'asc' } },
  })

  if (errors) return errors.map((e, i) => <Error key={i} error={e} />)
  return todos.map((todo) => <Todo key={todo.id} todo={todo} />)
}

Save instantly to a local DB

Make your app feel native. Make it faster and work offline. Our consistency mechanisms make offline transactions as easy as transacting to a central cloud database.

Todos.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { useCurrentUser, useEntity, useTransact } from 'homebase-react'

// Create
const [currentUser] = useCurrentUser()
const [project] = useEntity({ project: { name: 'Build the thing' }})
const [transact, errors, syncing] = useTransact()
const [ids, dbAfter, dbBefore] = transact([{
  todo: {
    title: 'Write more code',
    assignedTo: currentUser,
    project
  }
}])

// Update
transact([{
  todo: {
    id: ids[0],
    isCompleted: true
  },
}])

Sync data across devices and between users

Homebase keeps your local and cloud data in sync. No API needed.

Todos.jsx
1
2
3
<HomebaseProvider config={{ namespace: 'yourdomain.com' }}>
  <YourComponents />
</HomebaseProvider>
Todos.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { useCurrentUser, useQuery } from 'homebase-react'

const Todos = ({ project }) => {
  const [currentUser] = useCurrentUser()
  const [todos, errors, syncing] = useQuery({
    $find: 'todo',
    $where: {
      todo: {
        project,
        isArchived: false,
        assignedTo: { $not: currentUser },
      },
    },
    $sort: { todo: { createdAt: 'asc' } },
  })

  if (errors) return errors.map((e, i) => <Error key={i} error={e} />)
  return todos.map((todo) => <Todo key={todo.id} todo={todo} />)
}

Homebase is powered by
Datahike 

The first open source real-time collaborative relational database that lives in your browser.

Make your data more
manageable

The best of local caching with the best of the cloud.

Pricing

Free for small projects. Pay as you grow.
 The Datahike DB is free and open-source.
Request early access