Nicchon.
Todos os projetos
SistemaEm produção· 2026

KTask

Gestão de tarefas multi-tenant pra estúdios criativos — cards, aprovações de cliente, automações e notificações WhatsApp.

Capa do projeto KTask

Sobre

Sistema multi-tenant que construí pra resolver um problema concreto: substituir uma ferramenta SaaS cara de gestão de tarefas que uma agência criativa usava. A diferença pro Trello/Asana clássicos é que o KTask resolve o triângulo estúdio + cliente + fornecedor — cliente aprova entregas via token sem criar conta, e tudo notifica no WhatsApp via Evolution API.

Stack

  • NestJS
  • Prisma
  • Postgres
  • Redis
  • Next.js
  • React
  • TypeScript
  • Evolution API

Decisões

  • Multi-tenancy via tenant_id em todas as tabelas (não schema-per-tenant) — começa simples e escala até alguns milhares de orgs sem refactor.
  • JWT access + refresh em cookies httpOnly — sem dependência de session storage no servidor.
  • Aprovações de cliente externo por token de uso único — sem cadastro, sem fricção, link expirável.
  • Automações por coluna como engine genérica (when X enters column Y, do Z) — extensível sem mexer no core.
  • Notificações WhatsApp via Evolution API + fallback silencioso se a API estiver fora — UX nunca trava.

Desafios técnicos

  • Garantir isolamento de dados entre orgs sem queries vazadas: middleware Prisma que injeta tenant_id em toda query.
  • Gerenciar aprovações de cliente sem login: token JWT específico com scope reduzido + rate limit.
  • Manter estado de board em tempo real entre múltiplos usuários sem WebSocket complexo: polling otimista + ETags.

Galeria

Quadro Kanban — colunas customizáveis com WIP visível, drag-and-drop, cards com prazo e equipe.
Quadro Kanban — colunas customizáveis com WIP visível, drag-and-drop, cards com prazo e equipe.
Tela inicial — visão consolidada do dia: tarefas pendentes, calendário e cards recentes.
Tela inicial — visão consolidada do dia: tarefas pendentes, calendário e cards recentes.
Card detalhado (parte 1) — descrição rica em editor WYSIWYG, equipe, prioridade, etiquetas e anexos.
Card detalhado (parte 1) — descrição rica em editor WYSIWYG, equipe, prioridade, etiquetas e anexos.
Card detalhado (parte 2) — checklist de tarefas, fluxos, calendário e timeline de anotações com @mentions.
Card detalhado (parte 2) — checklist de tarefas, fluxos, calendário e timeline de anotações com @mentions.
Aprovação por cliente externo — link tokenizado sem cadastro. Cliente vê descrição, equipe, prazo e decide com um clique.
Aprovação por cliente externo — link tokenizado sem cadastro. Cliente vê descrição, equipe, prazo e decide com um clique.
Painel de indicadores — Lead time, Throughput, WIP, atrasados, saúde por coluna e cards parados.
Painel de indicadores — Lead time, Throughput, WIP, atrasados, saúde por coluna e cards parados.
Timesheet da organização — controle manual ou cronômetro, filtros por período/fluxo/usuário, exportação CSV.
Timesheet da organização — controle manual ou cronômetro, filtros por período/fluxo/usuário, exportação CSV.
Hub de navegação — todos os quadros da organização com permissões respeitadas via tenant_id + scope de membership.
Hub de navegação — todos os quadros da organização com permissões respeitadas via tenant_id + scope de membership.
Login com JWT em cookies httpOnly e opção 'permanecer logado neste dispositivo'. Tema escuro nativo.
Login com JWT em cookies httpOnly e opção 'permanecer logado neste dispositivo'. Tema escuro nativo.