ClickContas
em produçãoSaaS contábil modular
Plataforma multiempresa que digitaliza a rotina de um escritório de contabilidade: a IA lê folhas de ponto manuscritas, e um livro caixa compartilhado deixa cada empresa-cliente lançar o próprio movimento para a contadora conciliar.
- Next.js
- TypeScript
- React
- Tailwind
- PostgreSQL (Supabase)
- Google Sheets API
- Google Gemini
- Vercel
● Produto de cliente privado — apenas estudo de caso, com mockups de dados fictícios das telas reais.
// o caso
- problema
- O escritório tocava duas rotinas no braço: redigitar numa planilha, uma a uma, as folhas de ponto manuscritas que chegavam por foto, e lançar a movimentação de caixa de cada cliente que vinha por WhatsApp ou papel — sem padronização e sem visão consolidada.
- solução
- Dois módulos independentes numa plataforma multiempresa. O Gemini lê a folha fotografada e uma tela de revisão lado a lado aplica as regras de negócio; a empresa-cliente lança o próprio caixa contra um plano de contas padronizado pela contadora, que concilia e fecha o mês.
- impacto
- Em produção com clientes reais. O que antes era redigitação virou conferência, e o ciclo se fecha sozinho: o sistema gera a folha em branco, o cliente preenche à mão, a foto volta, e a planilha sai pronta.
// meu papel
Full-stack, sozinho — produto, arquitetura, front-end, back-end e publicação.
// visão geral
Três perfis dividem a plataforma, e o que cada um alcança é decidido no servidor: um administrador master que cadastra contadores, a contadora que enxerga só as empresas dela e os módulos liberados, e o administrativo da empresa-cliente que não alcança nada além do próprio livro caixa. Cada empresa-cliente carrega um id interno imutável, então renomear a razão social ou preencher o CNPJ depois não quebra nenhum vínculo.
Os dois módulos não dividem o mesmo banco, de propósito. O livro caixa é concorrente, relacional e precisa de integridade, então mora no PostgreSQL. Os dados da folha de ponto ficam no Google Sheets porque a contadora já operava em planilha — encontrar a ferramenta onde ela estava, em vez de obrigá-la a migrar para poder usar o produto.
// notas de engenharia
OCR com humano no circuito
O modelo extrai os horários; a decisão fica com uma tela de conferência que aplica a jornada de cada empresa, feriados, folgas e saldo diário. Automação que continua auditável — a contadora assina números que ela ainda vê ao lado da foto original.
Dois bancos, escolhidos pelo padrão de acesso
PostgreSQL para o livro caixa, onde várias empresas escrevem ao mesmo tempo e integridade referencial importa; Google Sheets para a folha de ponto, lida e escrita pela API. Um mesmo id de empresa costura os dois, validado na aplicação já que não existe chave estrangeira entre eles.
Autorização em profundidade
O middleware faz o recorte grosso por papel; cada rota de API então faz a pergunta mais estreita — este usuário pode mexer nesta empresa? A sessão é cookie assinado (HMAC) e as senhas são PBKDF2, ambos via Web Crypto para rodarem no runtime edge. A RLS está ligada sem policies, então a chave pública do navegador não lê nada direto.
Migrar um sistema no ar
Parte do cadastro nasceu no Google Sheets e foi para o PostgreSQL com o sistema já em produção. Manter as assinaturas de função idênticas fez a troca de backend não tocar nenhum call site, e os dados e senhas existentes atravessaram intactos.