Local-first não significa “sincronizado”.
Não há conta nem servidor central. Chrome, Edge, Firefox, outro perfil, janela privada e outra origem podem enxergar bancos diferentes. O app não envia seus dados automaticamente para nenhum outro lugar.
Manual completo e local-first
Do primeiro npm install ao backup de anos de planejamento:
este guia explica como instalar, usar, proteger e manter o Rics
Time-blocking sem surpresas.
O app é deliberadamente simples: tarefas viram blocos de tempo, tudo fica local e o arquivo de backup é a ponte entre navegadores e dispositivos.
Não há conta nem servidor central. Chrome, Edge, Firefox, outro perfil, janela privada e outra origem podem enxergar bancos diferentes. O app não envia seus dados automaticamente para nenhum outro lugar.
Arrastar uma tarefa cria um bloco de 30 minutos, mas não a remove da lista. Agende a mesma tarefa quantas vezes precisar.
Excluir uma tarefa remove somente seus blocos futuros. Blocos que já começaram permanecem para histórico e relatórios.
O JSON versionado transporta tarefas, blocos, projetos e preferências. Tokens de Fizzy e Trello ficam de fora por segurança.
A PWA armazena os arquivos do app. Planejamento e relatórios continuam offline; sincronizações externas exigem conexão.
Há duas instalações diferentes: executar o projeto localmente e, depois, opcionalmente instalar a versão PWA pelo navegador.
Pré-requisitos: Node.js 18 ou mais recente, npm e Git.
No GitHub, use Code → Download ZIP, extraia o arquivo,
abra o terminal na pasta e execute npm install e
npm run dev.
Abra o endereço mostrado pelo terminal, normalmente
http://localhost:5173. Mantenha o terminal aberto enquanto
estiver usando essa sessão.
Execute npm run build. O resultado vai para
dist. Use npm run preview para testá-lo em um
servidor local; não abra dist/index.html diretamente.
Abra o app em um navegador compatível. No Chrome ou Edge, procure o ícone de instalação na barra de endereço ou a opção “Instalar aplicativo” no menu. Confirme para criar um atalho e abrir em janela própria. O texto do menu pode variar conforme o navegador.
A primeira visita precisa de rede para baixar os arquivos. Quando o aviso “pronto para uso offline” aparecer, tarefas, calendário, configurações e relatórios poderão funcionar sem conexão. Fizzy e Trello continuam dependendo da internet.
localhost:5173 e localhost:4173 são origens
diferentes e, portanto, têm bancos IndexedDB diferentes. Seus dados não
sumiram: você apenas abriu outro banco.
O fluxo principal foi desenhado para ser repetido: criar, arrastar, ajustar e reutilizar.
A marca fica à esquerda, Planejamento e Relatórios ao centro, e o seletor PT/EN com a engrenagem de Configurações à direita. O idioma escolhido também vale para o calendário, mensagens, CSV e PDF.
Na aba Tarefas, clique em +, digite apenas o título e escolha “Salvar e adicionar outra” ou “Salvar e sair”. Títulos vazios e duplicados, ignorando maiúsculas/minúsculas, são recusados. Use a busca para filtrar a lista.
Arraste a tarefa para o calendário. Um bloco de 30 minutos é criado no horário apontado; na visão mensal, ele começa às 09:00. A tarefa continua na lista e pode ser arrastada novamente.
Arraste o bloco para mudar dia ou horário e arraste sua borda para alterar a duração. Clique no bloco para associar um projeto ou remover somente aquela ocorrência.
Alterne entre mensal, semanal, diária, 2 semanas e 3 semanas. Use “Hoje” e as setas para navegar. “Fim de semana estreito” comprime sábado e domingo; “Ocultar fim de semana” remove ambos das visões compatíveis. Suas escolhas são lembradas.
Projetos dão contexto às tarefas. Relatórios transformam blocos em horas consolidadas ou linhas detalhadas.
Abra a aba Projetos, clique em +, escolha nome e cor. Clique em uma tarefa ou bloco para vinculá-lo. Ao trocar o projeto da tarefa, todos os blocos ligados a ela recebem o novo projeto.
Excluir um projeto não apaga tarefas nem blocos: eles ficam “Sem projeto”.
Em Relatórios, informe data inicial e final, marque um ou mais projetos — incluindo “Sem projeto” quando necessário — e escolha o formato.
A tabela exibida só existe enquanto a tela está aberta. Os blocos que a originaram continuam no banco. Exporte CSV ou PDF se precisar guardar o relatório pronto.
As conexões só importam tarefas abertas. O calendário e os blocos continuam pertencendo ao Rics Time-blocking.
Em Configurações → Aplicativos conectados, escolha Fizzy, cole um token pessoal somente de leitura, verifique, selecione a conta e use “Salvar e sincronizar”.
Informe a API Key e um token de leitura, verifique o acesso, selecione os quadros e marque as listas que significam trabalho concluído. Cards abertos das demais listas entram como tarefas.
Tokens e chaves ficam na store local integrations. Eles não
entram no JSON de backup. Ao migrar para outro navegador, conecte
novamente.
O app usa IndexedDB por meio do Dexie. Não existe uma segunda cópia em localStorage nem um backend escondido.
ricsTimeBlocking, esquema atual v3
IDs do banco são numéricos e auto-incrementais. Datas ficam como strings
ISO. taskId é a relação durável entre tarefa e bloco.
O IndexedDB é isolado por navegador, perfil e origem (protocolo + domínio + porta). Chrome não enxerga o banco do Firefox; um perfil de trabalho não enxerga o pessoal; HTTP não enxerga HTTPS; outra porta local cria outra origem. Modo privado costuma apagar os dados ao encerrar a sessão.
Use sempre a mesma URL para acessar os mesmos dados. Em produção, migrar de domínio ou subdomínio exige exportar no endereço antigo e importar no novo.
“Limpar cookies e dados do site”, redefinir o perfil ou desinstalar o navegador com remoção de dados pode apagar o IndexedDB. Excluir apenas cache de arquivos nem sempre apaga o banco, mas faça backup antes de qualquer limpeza ampla.
O app migra o banco legado blocoCalendar para
ricsTimeBlocking quando possível e registra a migração.
Não interrompa a primeira abertura após uma atualização.
O formato atual é rics-time-blocking-backup, versão 4. O app
também reconhece versões anteriores compatíveis e valida tudo antes da
transação de escrita.
| Conteúdo | Entra no backup? | Motivo |
|---|---|---|
| Tarefas e blocos | Sim | São o núcleo do planejamento e do histórico. |
| Projetos e cores | Sim | Preservam a organização e os relatórios. |
| Preferências | Sim | Restauram visão, barra lateral e fins de semana. |
| Tokens Fizzy/Trello | Não | Credenciais permanecem apenas no navegador de origem. |
| Relatórios exportados | Não | CSV e PDF são arquivos derivados, salvos separadamente. |
Registros com o mesmo ID são atualizados; os outros dados existentes são preservados. É útil para trazer uma cópia para uma base em uso, mas IDs iguais representam o mesmo registro e podem sobrescrever conteúdo.
Apaga tarefas, blocos, projetos e preferências atuais antes de importar o arquivo. As conexões e credenciais de integrações permanecem locais, porque não fazem parte do backup nem da substituição.
Exporte semanalmente se usa o app todos os dias e sempre antes de trocar de navegador, perfil, computador, domínio ou porta; limpar dados do site; importar em modo Substituir; limpar histórico; zerar o banco; ou instalar uma grande atualização. Mantenha pelo menos uma cópia fora do dispositivo atual.
IndexedDB lida bem com milhares de registros e o calendário busca somente o intervalo visível com uma margem. Não há obrigação de “limpar todo mês”.
Navegação e relatórios respondem bem, o uso estimado é confortável e o histórico ainda tem valor. Não faça nada além de backups regulares.
Anos de blocos, relatórios amplos mais lentos ou armazenamento crescendo. Exporte um backup e considere arquivar períodos antigos.
Lentidão repetível, falhas por quota ou dezenas de milhares de blocos sem utilidade prática. Limpe histórico por data, nunca o banco inteiro como primeira tentativa.
Confira tarefas, blocos, datas mais antiga e recente e o uso estimado do site. A estimativa pode incluir outros dados da mesma origem e pode não estar disponível em todos os navegadores.
O próprio diálogo “Gerenciar histórico” oferece esse botão. Guarde o JSON fora da pasta de downloads temporários.
Use “Manter 6 meses”, “Manter 1 ano”, “Manter 2 anos” ou uma data manual. A prévia mostra quantos blocos serão elegíveis.
Somente blocos com término anterior à data são apagados. Tarefas, projetos, preferências, conexões e blocos posteriores permanecem. Relatórios do período removido só voltarão se o backup for restaurado.
Redefinir é diferente de limpar histórico. Use apenas quando realmente quiser uma instalação vazia neste navegador.
Ela remove tarefas, todos os blocos, projetos, preferências e conexões deste navegador. O app recarrega com um banco novo.
Gere o JSON em Configurações → Backup do sistema. Confirme que o download existe e tem uma data coerente.
Em Configurações → Redefinir banco de dados, clique em “Apagar todos os dados”.
Leia o resumo e clique em “Sim, apagar tudo”. O banco legado também é removido, evitando que dados antigos reapareçam.
Use “Importar backup” e escolha “Substituir”. Depois reconecte Fizzy e Trello, pois credenciais não estavam no arquivo.
Na maioria das vezes, o app abriu outro contexto de armazenamento — não ocorreu uma exclusão misteriosa.
Cada navegador mantém seu próprio IndexedDB. Volte ao navegador antigo, exporte o backup e importe no novo.
A porta faz parte da origem. Abra a porta anterior ou faça exportação/importação entre as duas origens.
Não. Blocos cujo início já passou ficam no histórico. Somente os blocos futuros ligados à tarefa são removidos.
Não. Credenciais do Fizzy e Trello permanecem apenas no navegador e devem ser configuradas novamente no destino.
Não por calendário. Limpe quando houver volume histórico sem valor, lentidão reproduzível ou pressão de armazenamento — sempre após exportar um backup.
Planejamento, dados locais e relatórios funcionam depois da primeira carga e do cache da PWA. Sincronizações com Fizzy e Trello exigem rede.
Complete local-first manual
From your first npm install to protecting years of planning:
this guide explains how to install, use, safeguard, and maintain Rics
Time-blocking without surprises.
The app is deliberately simple: tasks become time blocks, everything stays local, and the backup file is the bridge between browsers and devices.
There is no account or central server. Chrome, Edge, Firefox, another profile, private browsing, and another origin may each see a different database. The app does not automatically send your data anywhere.
Dragging a task creates a 30-minute block but does not remove the task from the list. Schedule it as many times as you need.
Deleting a task removes only its future blocks. Blocks that have already started remain available for history and reports.
The versioned JSON carries tasks, blocks, projects, and preferences. Fizzy and Trello credentials stay out for security.
The PWA caches the application files. Planning and reports continue offline; external sync still requires a connection.
There are two kinds of installation: running the project locally and, optionally, installing the PWA through the browser.
Requirements: Node.js 18 or later, npm, and Git.
On GitHub, choose Code → Download ZIP, extract it, open
a terminal in the folder, and run npm install followed by
npm run dev.
Open the address shown in the terminal, usually
http://localhost:5173. Keep the terminal running while you
use that session.
Run npm run build. Output goes to dist. Use
npm run preview to test it through a local server; do not
open dist/index.html directly.
Open the app in a compatible browser. In Chrome or Edge, look for the install icon in the address bar or “Install app” in the browser menu. Confirm to create a shortcut and use a standalone window. Menu wording varies by browser.
The first visit needs a connection to fetch all files. After the “ready for offline use” notice, tasks, calendar, settings, and reports can work offline. Fizzy and Trello still need internet access.
localhost:5173 and localhost:4173 are different
origins and therefore have different IndexedDB databases. Your data did
not disappear; you opened another database.
The main flow is designed for repetition: create, drag, adjust, and reuse.
The brand sits on the left, Planning and Reports are centered, and the PT/EN switch plus the Settings gear sit on the right. The selected language also applies to the calendar, messages, CSV, and PDF.
In the Tasks tab, click +, enter only the title, then choose “Save and add another” or “Save and close.” Empty and duplicate titles, ignoring letter case, are rejected. Use search to filter the list.
Drag the task onto the calendar. A 30-minute block is created at the chosen time; in month view, it starts at 09:00. The task remains in the list and can be dragged again.
Drag a block to change its day or time, and drag its edge to change duration. Click a block to assign a project or remove only that occurrence.
Switch among month, week, day, two-week, and three-week views. Use “Today” and the arrows to navigate. “Narrow weekends” compresses Saturday and Sunday; “Hide weekends” removes both in compatible views. Your choices are remembered.
Projects give tasks context. Reports turn scheduled blocks into consolidated hours or detailed rows.
Open the Projects tab, click +, then choose a name and color. Click a task or block to link it. Changing a task’s project updates all blocks linked to that task.
Deleting a project does not delete tasks or blocks; they become “Unassigned.”
Under Reports, enter start and end dates, select one or more projects — including “Unassigned” when needed — and choose a format.
The displayed table exists only while the screen is open. The blocks behind it remain in the database. Export CSV or PDF if you need to keep the finished report.
Connections import open tasks only. Your calendar and blocks still belong to Rics Time-blocking.
Under Settings → Connected apps, choose Fizzy, paste a read-only personal token, verify it, select the account, then choose “Save and sync.”
Enter the API Key and a read token, verify access, select boards, and mark lists that represent completed work. Open cards from the other lists become tasks.
Tokens and keys stay in the local integrations store. They
are not included in backup JSON. Connect again after moving browsers.
The app uses IndexedDB through Dexie. There is no second copy in localStorage and no hidden backend.
ricsTimeBlocking, current schema v3
Database IDs are numeric and auto-incremented. Dates are stored as ISO
strings. taskId is the durable link between task and block.
IndexedDB is isolated by browser, profile, and origin (protocol + domain + port). Chrome cannot see Firefox’s database; a work profile cannot see a personal profile; HTTP cannot see HTTPS; another local port creates another origin. Private mode usually clears its data when the session ends.
Always use the same URL to access the same data. In production, moving to another domain or subdomain requires exporting from the old address and importing at the new one.
“Clear cookies and site data,” resetting the profile, or uninstalling a browser while removing its data may delete IndexedDB. Clearing only file cache may not, but make a backup before any broad cleanup.
The app migrates the legacy blocoCalendar database to
ricsTimeBlocking when possible and records completion.
Do not interrupt the first load after an update.
The current format is rics-time-blocking-backup, version 4.
The app also accepts compatible earlier versions and validates everything
before opening the write transaction.
| Content | Included? | Why |
|---|---|---|
| Tasks and blocks | Yes | They are the core of planning and history. |
| Projects and colors | Yes | They preserve organization and reporting. |
| Preferences | Yes | They restore view, sidebar, and weekend choices. |
| Fizzy/Trello tokens | No | Credentials remain only in the source browser. |
| Exported reports | No | CSV and PDF are derived files stored separately. |
Records with the same ID are updated; other existing data is preserved. This is useful for bringing a copy into an active database, but matching IDs represent the same record and may overwrite content.
Clears current tasks, blocks, projects, and preferences before importing the file. Integration connections and credentials remain local because they are neither in the backup nor part of replacement.
Export weekly if you use the app daily, and always before changing browser, profile, computer, domain, or port; clearing site data; using Replace import; cleaning history; resetting the database; or installing a major update. Keep at least one copy off the current device.
IndexedDB handles thousands of records well, and the calendar fetches only the visible range plus a margin. There is no need for a monthly cleanup.
Navigation and reports respond well, estimated usage is comfortable, and history still matters. Do nothing beyond regular backups.
Years of blocks, slower broad reports, or growing storage. Export a backup and consider archiving older periods.
Repeatable slowness, quota failures, or tens of thousands of blocks with no practical value. Clean history by date; do not reset everything first.
Review task and block counts, oldest and newest dates, and estimated site usage. The estimate may include other data from the same origin and may not be available in every browser.
The “Manage history” dialog includes the export button. Move the JSON out of any temporary downloads folder.
Use “Keep 6 months,” “Keep 1 year,” “Keep 2 years,” or enter a custom date. The preview shows how many blocks are eligible.
Only blocks ending before the date are removed. Tasks, projects, preferences, connections, and later blocks remain. Reports for the removed period return only if you restore a backup.
Resetting is different from cleaning history. Use it only when you truly want an empty installation in this browser.
It removes tasks, all blocks, projects, preferences, and connections from this browser. The app reloads with a new database.
Generate JSON under Settings → System backup. Confirm that the download exists and has a sensible date.
Under Settings → Reset database, click “Delete all data.”
Read the summary and click “Yes, delete everything.” The legacy database is also removed so old data cannot reappear.
Use “Import backup” and choose “Replace.” Then reconnect Fizzy and Trello because their credentials were not in the file.
Most often, the app opened a different storage context — no mysterious deletion occurred.
Each browser has its own IndexedDB. Return to the old browser, export a backup, and import it in the new one.
The port is part of the origin. Open the old port or export and import between the two origins.
No. Blocks whose start time has passed remain in history. Only future blocks linked to the task are removed.
No. Fizzy and Trello credentials stay only in the browser and must be configured again at the destination.
Not on a schedule. Clean when old history has no value, performance is reproducibly slower, or storage is under pressure — always after exporting a backup.
Planning, local data, and reports work after the first load and PWA cache. Fizzy and Trello synchronization still requires a connection.