# O que local-first significa no Prior

> O Prior salva seu trabalho no seu aparelho primeiro e sincroniza depois. Veja como isso funciona, como cada tipo de dado se mescla e onde o local-first para.

Source: https://priortasks.com/pt/blog/local-first/
Last updated: 2026-11-05

Local-first quer dizer que a cópia do seu trabalho que importa é a do seu aparelho. O servidor é o meio pelo qual seus aparelhos se encontram, e não o lugar onde uma ação precisa ser aprovada para contar. A ideia foi apresentada em 2019 por Martin Kleppmann, Adam Wiggins, Peter van Hardenberg e Mark McGranaghan, na Ink & Switch, em [um ensaio](https://www.inkandswitch.com/essay/local-first/) que lista sete ideais: rápido, multidispositivo, offline, colaboração, longevidade, privacidade e controle do usuário.

A arquitetura do Prior segue essa ideia. Veja o que ela significa na prática e onde ela para.

## O que acontece quando você adiciona uma tarefa

Você escreve uma tarefa. O Prior a salva em um banco de dados no seu aparelho: SQLite nos aplicativos para computador e Android, o armazenamento próprio do navegador na web. Ao lado, ele grava uma entrada em uma caixa de saída, com um ID de mutação único. A tarefa aparece na tela nesse momento. Nada esperou pela rede, e por isso criar uma tarefa é instantâneo.

Quando o aparelho está online, ele envia a caixa de saída ao servidor. O servidor mantém um registro somente de acréscimo das alterações, com um número de revisão crescente, e aplica cada alteração apenas uma vez por ID de mutação, então uma nova tentativa após uma conexão caída não cria a tarefa duas vezes. Seus outros aparelhos pedem o que mudou desde a última revisão que viram. Uma pequena mensagem WebSocket diz a eles para pedir agora, em vez de esperar a próxima sincronização periódica. Ela não leva dados, só a notícia de que algo mudou.

Offline, o aplicativo avisa: “Tudo está salvo neste dispositivo. A sincronização volta quando você estiver online.” Com alterações pendentes, ele mostra quantas são. Os dados criados antes de você entrar ficam no aparelho até serem vinculados à sua conta.

## Mesclar é uma escolha por tipo de dado

Dois aparelhos que alteram a mesma coisa offline vão divergir quando se encontrarem. Não existe uma única solução para todo tipo de dado, então o Prior usa a que se encaixa em cada um.

- **Tarefas e hábitos.** O servidor aplica a última alteração aceita na ordem das revisões. Uma tarefa com uma alteração ainda pendente no seu aparelho não é sobrescrita pelo que chega de outro lugar.
- **Calendários e eventos.** As alterações são correções campo a campo. Edições em campos diferentes do mesmo evento se combinam; no mesmo campo, vence a última recebida. As exclusões deixam uma marca, então uma cópia antiga offline não consegue trazer um evento de volta.
- **Flashcards.** As revisões são um registro somente de acréscimo, e o agendamento de um cartão não é guardado. Ele é calculado reproduzindo as revisões desse cartão. Dois aparelhos que revisaram offline chegam ao mesmo agendamento quando seus registros se encontram, sem nada para resolver.
- **Orçamentos.** Eles se mesclam linha por linha. Vence a versão mais recente de cada linha, e as linhas excluídas deixam uma marca.
- **Notas compartilhadas.** São documentos Yjs, feitos para várias pessoas digitando ao mesmo tempo. Se a conexão cair, a nota mostra que está offline, e as alterações dos editores se mesclam quando a conexão volta.

O que os cinco têm em comum é uma mesclagem escolhida de acordo com o uso dos dados, e uma marca para cada exclusão, para que uma cópia antiga nunca desfaça uma decisão mais recente.

## Onde ele para

Local-first é uma promessa sobre onde o seu trabalho fica e o que continua funcionando, não uma promessa sobre tudo.

- **Projetos compartilhados precisam de conexão.** O Prior avisa isso e mantém o projeto compartilhado somente leitura até você se reconectar.
- **Algumas coisas são online por natureza.** Entrar, o Prior AI, o e-mail e as ligas precisam da rede.
- **Não é criptografia de ponta a ponta.** Seus dados ficam guardados no nosso servidor para poderem sincronizar. O local-first não muda isso.
- **O navegador é um lugar frágil.** Na web, seus dados ficam no armazenamento daquele navegador. Se você o limpar antes de os dados sincronizarem, as alterações não sincronizadas vão junto. Os aplicativos nativos mantêm um arquivo de banco de dados.

## Um bug que nos ensinou algo

Uma versão inicial da sincronização rodava em ordem fixa. Uma coluna de data era lida de forma errada para tarefas agendadas, e isso fazia falhar a leitura inteira das tarefas, o que também impedia a sincronização dos calendários e do espaço de trabalho. Corrigimos a leitura e mudamos o desenho: cada parte da sincronização agora roda por conta própria, e uma falha em uma não bloqueia mais as outras. A interface diz qual parte ainda está aguardando, e não informa sucesso completo quando uma parte falhou.

Isso também é o local-first funcionando. Seus dados nunca se perderam, porque estavam seguros no aparelho. A sincronização é que atrasou.

Mais sobre como usar isso está em [Offline e sincronização](https://priortasks.com/pt/docs/getting-started/offline-and-sync/), e [Corrigir problemas de sincronização](https://priortasks.com/pt/docs/troubleshooting/sync-problems/) explica o que fazer quando algo não chega.
