Decisões técnicas que sustentam o seu produto.
Decisões tomadas no início influenciam manutenção, segurança e evolução. Estas são as tecnologias que operamos em produção — e o critério por trás de cada escolha.
Frontend & Web
Interfaces que carregam rápido em qualquer dispositivo e se mantêm legíveis para quem for evoluí-las depois.
Next.js
Framework React full-stack com App Router, Server Components e streaming nativos.
Por que usamos
Permite reunir páginas, componentes de servidor e rotas de aplicação no mesmo projeto quando isso simplifica a manutenção.
React
Biblioteca declarativa de UI baseada em componentes com Virtual DOM e Concurrent Mode.
Por que usamos
Componentes reutilizáveis ajudam a manter comportamento e acabamento consistentes entre telas.
TypeScript
Superset fortemente tipado do JavaScript com análise estática e inferência avançada.
Por que usamos
A verificação estática encontra incompatibilidades antes do deploy e documenta os contratos do código.
Tailwind CSS
Framework CSS utility-first com design tokens nativos via variáveis CSS (v4).
Por que usamos
Utilitários e variáveis CSS permitem aplicar o design system sem repetir folhas de estilo por componente.
Mobile
Aplicativos nativos para iOS e Android a partir de uma base de código única, sem duplicar equipe nem manutenção.
React Native
Framework para apps nativos iOS e Android com componentes React e bridge nativa.
Por que usamos
Permite compartilhar parte da modelagem e da experiência React entre web e aplicativo.
Expo
Plataforma gerenciada para React Native com SDK unificado, EAS Build e OTA updates.
Por que usamos
Organiza builds e distribuição de aplicativos React Native com um fluxo documentado.
NativeWind
Tailwind CSS para React Native via StyleSheet otimizado.
Por que usamos
Mantém uma linguagem de estilos próxima da usada nos projetos web.
Backend & APIs
APIs tipadas de ponta a ponta: o contrato entre servidor e interface é verificado em tempo de compilação, não em produção.
Hono
Framework web compacto compatível com diferentes runtimes JavaScript.
Por que usamos
Útil para APIs pequenas quando portabilidade entre runtimes é mais importante que um framework completo.
Node.js
Runtime JavaScript assíncrono de alta performance para serviços de background e integrações.
Por que usamos
Adequado para integrações, scripts e serviços que precisam do ecossistema JavaScript.
Banco de Dados
Dados com integridade relacional e acesso tipado, com migrações versionadas — sem alteração manual em banco de produção.
Supabase
PostgreSQL gerenciado com Auth, Storage, Realtime e Edge Functions integrados.
Por que usamos
Reúne PostgreSQL gerenciado e serviços de autenticação, armazenamento e eventos quando o escopo precisa deles.
Drizzle ORM
ORM TypeScript com API próxima de SQL e suporte a migrations.
Por que usamos
Mantém esquema e consultas próximos do TypeScript sem esconder o funcionamento do SQL.
CMS
Conteúdo editável pelo cliente sem depender de desenvolvedor, com estrutura versionada junto do código.
Sanity
Headless CMS com Content Lake, Portable Text e Studio customizável em React.
Por que usamos
É uma opção para projetos que realmente precisam de edição de conteúdo por painel.
Pagamentos
Cobrança online com padrão de segurança PCI delegado ao provedor: dados de cartão nunca transitam pela aplicação.
Stripe
Plataforma completa de pagamentos com Checkout, Billing, Connect e Radar anti-fraude.
Por que usamos
Oferece fluxos prontos para pagamentos, assinaturas e plataformas quando o projeto precisa deles.
DevOps & Deploy
Publicação automatizada com verificação antes de cada entrega e ambiente reproduzível — o que roda aqui roda em produção.
Vercel
Plataforma de deploy Edge com CDN global, preview branches e Analytics integrado.
Por que usamos
Facilita previews por alteração e publicação de aplicações compatíveis com a plataforma.
TurboRepo
Orquestrador de build com cache incremental e paralelização automática de tarefas.
Por que usamos
Reaproveita o que não mudou entre entregas e evita repetir um build completo sem necessidade.
Docker
Containerização de workloads com imagens otimizadas e compose para ambientes locais.
Por que usamos
Ajuda a reproduzir serviços locais com versões e configurações declaradas.
GitHub Actions
CI/CD nativo com matrix builds, cache de dependências e deploy automatizado.
Por que usamos
Executa verificações automatizadas definidas no próprio repositório.
Design & UI System
Sistema de design com componentes acessíveis por padrão, garantindo consistência visual à medida que o produto cresce.
shadcn/ui
Biblioteca de componentes React acessíveis construídos sobre Radix UI e Tailwind CSS.
Por que usamos
Componentes ficam no código do projeto e podem ser adaptados sem importar uma camada visual fechada.
Figma
Ferramenta de design colaborativo com componentes, variables e prototipagem avançada.
Por que usamos
Variáveis, componentes e inspeção ajudam a registrar decisões de interface antes da implementação.