# Offline First

## Problem

* Are you expecting your application to make writes locally while offline?
* Do these writes need to be synced to a central server or other nodes?
* How are you going to detect conflicting writes?
* What are you going to do if you detect them?
* Would the Git model of clone, push, and pull on your data help?

## Dolt solves this by…

Dolt brings Git-style decentralization to the SQL database. Just like Git is ideal in no connectivity environments when dealing with files, Dolt is ideal in low connectivity environments when dealing with tables. Most large scale data is stored in tables.

With Dolt you write to the database disconnected. You can have a fully functioning offline application that uses the exact same software and models it would use if it were a standard centralized SQL database.

When it is safe to connect to the internet, Dolt computes the difference between what you have and what a peer database has and only sends these differences both ways. This synchronization process is very efficient, effectively allowing you to get the most information possible in and out in the shortest amount of time. Once the synchronization is complete, go back to disconnected. You and the peer now share a synchronized view with complete, auditable edit history.

Conflicting writes are surfaced quickly and an operator or software can take additional action to resolve.

## Dolt replaces

### Custom syncing processes

Dolt replaces custom code to synchronize your client and server. This code is complicated and hard to get right. The Git [remote](/concepts/dolt/git/remotes.md) model of clone, fetch, push, and pull is a proven synchronization model. Dolt brings this model to the database allowing you to remove most of your synchronization code.

## Companies Doing This

Be the first

## Case Studies

Let us know if you would like us to feature your use of Dolt for data sharing here.

## Other Related Articles

* [So you want a Decentralized database?](https://www.dolthub.com/blog/2022-05-27-decentralized-database/)
* [Dolt for Military Applications](https://www.dolthub.com/blog/2022-03-07-dolt-military/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dolthub.com/introduction/use-cases/offline-first.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
