InkFlow: canvas infinito local-first, com motor em C++ e WebAssembly
O InkFlow é um aplicativo web de canvas infinito para pensar e organizar tarefas, que funciona sem login e guarda os dados no próprio navegador. O desenho roda num motor em C++ compilado para WebAssembly, a colaboração acontece em tempo real entre aparelhos, e a escrita à mão vira tarefa com reconhecimento de texto no navegador.
Cliente e contexto
Ferramentas de produtividade costumam virar listas sem fim. O InkFlow propõe o contrário: despejar ideias num canvas livre e puxar uma tarefa de cada vez para um modo de foco, com cronômetro.
O problema
“Quero rabiscar ideias como no papel, sem criar conta, sem meus dados irem para um servidor, e transformar o rabisco em tarefa.”
Restrições
- Desenho fluido mesmo em tablet, sem travar a página.
- Dados do usuário só no aparelho dele.
- Colaboração entre aparelhos sem servidor de dados próprio.
Decisões e trade-offs
Motor de desenho em C++ compilado para WebAssembly
Por quê: O cálculo dos traços sai do JavaScript e fica perto do desempenho nativo. O custo é uma etapa a mais no build.
Local-first com IndexedDB (Dexie.js)
Por quê: Funciona offline e sem login; o usuário pode exportar tudo. Não há banco central para manter nem dado pessoal sob guarda.
Sincronização P2P com Y.js e WebRTC
Por quê: Aparelhos conversam direto entre si; só a sinalização passa por um worker leve. Sem servidor de dados.
Reconhecimento de texto em Web Worker
Por quê: O OCR (Tesseract.js) roda em segundo plano, então a escrita vira tarefa sem congelar o canvas.
O que foi construído
- Canvas infinito com caneta, borracha, formas, laço de seleção e exportação em PDF.
- Pilha de tarefas, modo de foco com Pomodoro, matriz de Eisenhower e heatmap de produtividade.
- Varinha mágica: escrita à mão vira tarefa por OCR no navegador.
- Pareamento por QR Code e colaboração em tempo real entre aparelhos.
- Tema claro e escuro, português e inglês, instalável como app.






Resultados
- 0contas ou servidores de dados para o usuário começar a usarFonte: Funcionamento do app no ar
- 3linguagens no código: TSX, TypeScript e C++ (motor de desenho)Fonte: Repositório do InkFlow, 13/10/2026
O azulejo deste case
Linhas não vazias de código-fonte por linguagem, contadas no repositório (pastas src e wasm).
| Linhas de código do InkFlow por linguagem | linhas |
|---|---|
| TSX (interface) | 3.555 |
| TypeScript (lógica) | 2.437 |
| C++ (motor de desenho) | 74 |
Fonte: Repositório do InkFlow · 2026-10-13
Tecnologias
Quer algo nesse nível?
Mande o problema, não a especificação.