Guardar dados
Um registo de progresso, uma lista de verificação ou um questionário guarda no navegador o que as pessoas fazem, como qualquer página web. Em Definições do site → Dados guardados, pode guardar isso no Solta, para que os dados acompanhem as pessoas nos seus outros dispositivos, ou partilhar um mesmo armazenamento entre todas as pessoas que abrem o site.
No dispositivo de cada visitante
É a predefinição, e o que acontece em qualquer página web. O que o site guarda em localStorage fica nesse navegador. Nada fica guardado no Solta, e outro telemóvel começa vazio.
De cada visitante, guardados no Solta
O site não precisa de mudar. Os visitantes passam a ter um pequeno botão Guardar em todos os dispositivos no canto inferior esquerdo. Escrevem o e-mail, enviamos um código de 6 dígitos, e a partir daí tudo o que o site guarda em localStorage fica também guardado no Solta. Noutro dispositivo, iniciam sessão da mesma forma, e os dados voltam antes de a página arrancar.
Para usar um botão seu, acrescente <meta name="solta-data-chip" content="off"> à página e chame solta.data.open() a partir dele. solta.data.email() diz quem tem sessão iniciada, e solta.data.signOut() termina a sessão nesse dispositivo. O que está no dispositivo fica lá.
Está em todos os planos. Um site guarda até 1 MB no total nos planos Free e Plus, 50 MB no Pro e 200 MB no Team. O que é eliminado num dispositivo é eliminado nos outros da próxima vez que abrirem o site, a não ser que esse dispositivo o tenha alterado sem sessão iniciada, depois de ter sido eliminado: nesse caso, a cópia mais recente dele é mantida e guardada. As eliminações são lembradas durante 30 dias, por isso um dispositivo que fique afastado mais tempo mantém o que tinha.
Partilhados por todos
No Pro e no Team, um só armazenamento para todo o site: uma contagem de votos, um livro de visitas, a lista de verificação de uma equipa. O código do site usa-o diretamente:
const votes = (await solta.data.shared.get("votes")) ?? 0;
await solta.data.shared.set("votes", votes + 1);
await solta.data.shared.push("guestbook", { name, note });
const everything = await solta.data.shared.all();Os valores podem ser qualquer coisa que o JSON consiga guardar. push acrescenta a uma lista sem perder o que outra pessoa acrescentou no mesmo momento, o que aconteceria se lesse, alterasse e gravasse a lista. Qualquer pessoa que possa abrir o site pode alterar o que é partilhado, por isso é indicado para um site protegido por palavra-passe ou convite.
Um cartão de grupo
Em todos os planos, um site pode ser um cartão de grupo: um armazenamento a que todas as pessoas que o abrem acrescentam e que leem, e que só o dono do site altera. É o que o modelo de cartão de grupo usa, e qualquer página pode usar:
const messages = (await solta.data.shared.get("messages")) ?? [];
await solta.data.shared.push("messages", { name, text });
const { count, limit, full } = await solta.data.card();A página só pode acrescentar: set e remove são recusados. Um cartão aceita 10 itens de graça, contando todas as suas listas. Um passe de cartão, comprado uma vez para esse cartão, alarga-o a 1000, e no Pro e no Team cada cartão aceita 1000. Um cartão cheio recusa um item novo (o seu code é card_full), em vez de apagar um antigo. Em Definições do site → Dados guardados vê todos os itens, com um botão para remover um deles para toda a gente.
Gerir os dados
O Solta nunca guarda um valor que contenha uma palavra-passe escrita na página: fica no navegador do visitante, e o armazenamento partilhado recusa-o.
Definições do site → Dados guardados mostra quanto o site guarda, e cada visitante que lá guarda dados, pelo endereço de e-mail. Quando alguém lhe pedir para eliminar os seus dados, elimine-os lá: desaparecem, e essa pessoa fica sem sessão iniciada. Exportar leva tudo em JSON. Tudo é eliminado juntamente com o site.
Cada chave tem até 200 caracteres e cada valor até 256 KB, com até 2000 chaves por visitante e para o armazenamento partilhado. Um visitante pode usar até 10% do espaço de um site (no mínimo 100 KB), para que ninguém o consiga encher para todos os outros. Num armazenamento partilhado, isso é contado por endereço de rede. O que um site guarda também conta para o seu armazenamento, tal como o que publica.

