Suíte de ferramentas financeiras de alta precisão para planejamento de independência financeira (FIRE) e simulações de investimento.
FinForge é uma aplicação financeira construída com foco em precisão matemática absoluta e Clean Architecture. Utilizamos decimal.js para garantir zero erros de ponto flutuante em todos os cálculos monetários.
- 📊 Calculadora de Juros Compostos: Simule o crescimento do seu patrimônio com aportes recorrentes
- 🔥 Planejador FIRE: Calcule quanto você precisa para se aposentar e viver de renda passiva
- 📈 Gráficos Interativos: Visualize a evolução do seu patrimônio ao longo do tempo
- 💯 Precisão Absoluta: Uso de
decimal.jspara cálculos sem erros de arredondamento
- Framework: Next.js 16.1 (App Router)
- Engine: React 19 (Server Components)
- Linguagem: TypeScript 5.x (Strict mode)
- Estilização: Tailwind CSS v4
- UI Components: shadcn/ui (Radix UI)
- Animações: Framer Motion 12
- Gráficos: Recharts
- Matemática: decimal.js
- Validação: Zod
- Formulários: React Hook Form
O projeto segue os princípios de Clean Architecture, separando claramente:
src/
├── core/ # 🎯 DOMÍNIO (Lógica Pura)
│ ├── domain/ # Entidades e tipos
│ ├── use-cases/ # Regras de negócio isoladas
│ └── utils/ # Helpers matemáticos
├── components/ # 🎨 UI Components
│ ├── ui/ # Componentes base (shadcn)
│ ├── charts/ # Componentes de visualização
│ └── dashboard/ # Componentes de negócio
├── hooks/ # Custom hooks
└── lib/ # Configurações e utilitários
app/ # 📄 Camada de Apresentação (Next.js)
├── compound-interest/ # Calculadora de Juros Compostos
├── fire-planner/ # Planejador FIRE
└── page.tsx # Home page
- Independência de Framework: A lógica de negócio (core) é totalmente isolada do React/Next.js
- Testabilidade: Use-cases puros podem ser testados sem UI
- Precisão: Uso obrigatório de
Decimalpara todos os cálculos financeiros - Type Safety: TypeScript strict mode + validação com Zod
# Instalar dependências
npm install
# Executar em desenvolvimento
npm run dev
# Build para produção
npm run build
# Executar produção
npm startAcesse http://localhost:3000
Fórmula implementada:
A = P(1 + r)^n + PMT × [(1 + r)^n - 1] / r
Onde:
- A = Montante final
- P = Capital inicial
- r = Taxa de juros por período
- n = Número de períodos
- PMT = Aporte mensal
Baseado na Trinity Study e regra dos 4%:
FIRE Number = Despesas Anuais / Taxa de Retirada Segura
Considera:
- Inflação (IPCA médio histórico)
- Taxa real de retorno (descontada inflação)
- Aportes mensais recorrentes
- Simulação ano a ano até a meta
// ❌ NUNCA faça isso (ponto flutuante impreciso)
const result = 0.1 + 0.2; // 0.30000000000000004
// ✅ SEMPRE use Decimal
import Decimal from 'decimal.js';
const result = new Decimal(0.1).plus(0.2); // 0.3Todos os cálculos monetários usam decimal.js para garantir precisão de até 20 casas decimais.
Os componentes seguem a estrutura do shadcn/ui com customizações:
- Card: Container base para seções
- Input: Campos de formulário com validação
- Button: Botões com variantes de estilo
- Label: Labels acessíveis para formulários
- Charts: Gráficos construídos com Recharts
- Adicionar testes unitários (Vitest)
- Implementar conversor de taxas
- Adicionar calculadora de poder de compra
- Implementar comparador de investimentos
- Adicionar suporte a múltiplas moedas
MIT