FinTrack is a privacy-first desktop application for personal finance management built with Electron, Next.js and SQLite.
Documentación · Primeros pasos · Funcionalidades · Arquitectura · FAQ · Releases
FinTrack es una app de escritorio para gestión de finanzas personales. Registra ingresos y gastos, analiza tu flujo de caja, visualiza tu patrimonio y obtén proyecciones con IA. Todo 100 % local: los datos viven en tu dispositivo en SQLite. Sin suscripciones, sin registro, sin telemetrÃa.
| Plataforma | Enlace |
|---|---|
| macOS — Apple Silicon | FinTrack-1.0.0-arm64.dmg |
| macOS — Intel | FinTrack-1.0.0.dmg |
| Windows | FinTrack-Setup-1.0.0.exe |
Linux — próximamente.
- ~30 componentes React
- 63 endpoints de API
- 4 tablas principales (SQLite)
- +90 commits
flowchart TD
E[Electron] -->|Renderiza| N[Next.js App Router]
N -->|Peticiones locales| A[API Routes]
A -->|Consultas SQL| S[(SQLite)]
N -->|Visualización| C[Charts Recharts/Chart.js]
A -.->|Opcional| L[LLM Provider]
Registra cada ingreso, gasto o transferencia con nombre, importe, categorÃa y cuenta. Historial completo con búsqueda y filtros por tipo.
Gráfico mensual de capital entrante vs. gasto saliente con curva acumulada. Tasa de ahorro calculada al instante con indicador de salud (Excelente / Puede mejorar / CrÃtico).
Donut chart interactivo con desglose automático por categorÃa. CategorÃas predefinidas: Nómina, Vivienda, Alimentación, Transporte, Ocio — y puedes crear las tuyas.
Registra acciones, crypto, inmuebles y liquidez en un único panel. Patrimonio neto calculado incluyendo todos los activos y cuentas.
Compatible con OpenAI, Anthropic, OpenRouter, LM Studio, Ollama. El contexto enviado es configurable y nunca abandona el dispositivo salvo lo que el usuario decida compartir.
Crea cuentas de distintos tipos (corriente, ahorro, inversión, efectivo) en cualquier divisa. El balance se actualiza en tiempo real.
Exporta tus transacciones a CSV desde el dashboard con un clic.
SQLite almacenado en el directorio de datos del usuario. Sin servidores, sin cloud, sin telemetrÃa. Tus datos no salen de tu equipo.
- Volumen: Soporta más de 50.000 transacciones
- Consulta media: ~3 ms
- Inicio de la aplicación: ~0.8 s
- Uso de RAM: ~170 MB
- ✔ SQL prepared statements
- ✔ JWT para sesiones locales
- ✔ CSP (Content Security Policy)
- ✔ XSS mitigation
- ✔ Input validation
- ✔ IPC isolation
- ✔ Electron contextIsolation
- ✔ Sandbox activado
- ✔ nodeIntegration disabled
Configuración lista y preparada para garantizar estabilidad:
- Playwright para E2E testing
- Vitest para pruebas unitarias
- Cobertura de componentes crÃticos
| Capa | TecnologÃa |
|---|---|
| Shell de escritorio | Electron 42 |
| Framework web | Next.js 16 / React 19 / TypeScript |
| Base de datos | SQLite vÃa better-sqlite3 |
| Estilos | Tailwind CSS v4 |
| Animaciones | Framer Motion |
| Gráficos | Chart.js + Recharts |
| Fondo 3D (landing) | Three.js / React Three Fiber |
| Autenticación local | JWT + auto-login sin pantalla de login |
Requisitos: Node.js 18+
git clone https://github.com/iPiiix/FinTrack.git
cd FinTrack/fintrack-web
npm install
# Modo desarrollo (Next.js + Electron juntos)
npm run dev:electron
# Solo el servidor web
npm run devAbre http://localhost:3000 para ver la landing, o la app Electron se abre sola con dev:electron.
# macOS (genera .dmg en dist/)
npm run build:mac
# Windows (genera .exe en dist/)
npm run build:winLos binarios compilados van a
fintrack-web/dist/y no se suben al repositorio. Las releases oficiales se publican en GitHub Releases.
FinTrack/
├── fintrack-web/ # App principal (Next.js + Electron)
│ ├── app/ # Next.js App Router
│ │ ├── page.tsx # Landing page (marketing)
│ │ ├── dashboard/ # Dashboard financiero
│ │ └── api/ # API Routes (SQLite local)
│ ├── electron/ # Main process de Electron
│ ├── components/ # Componentes compartidos
│ ├── lib/ # DB, JWT, utilidades
│ └── context/ # AuthContext (perfil local)
└── backend/ # FastAPI legacy (mantenido solo como referencia histórica)
(Nota: El directorio backend/ contiene código heredado en FastAPI. Actualmente, todo el backend productivo opera mediante API Routes de Next.js).
Cuando Electron arranca, carga /api/auth/auto-local. Esta ruta crea el perfil local en la primera ejecución (usuario local@fintrack.app), emite las cookies JWT y redirige al dashboard — sin pantalla de login, sin contraseña. Los datos persisten en ~/Library/Application Support/FinTrack/fintrack.db (macOS) o %APPDATA%\FinTrack\fintrack.db (Windows).
La landing se puede desplegar en Vercel de forma independiente al binario de escritorio:
cd fintrack-web
npx vercel --prodO conecta el repo en vercel.com y establece el Root Directory en fintrack-web. La variable VERCEL=1 desactiva automáticamente el modo standalone de Next.js (que solo se usa para Electron).
MIT — úsalo, modifÃcalo, distribúyelo. Ver LICENSE.
| Primeros pasos | Instalación, primer arranque, backup |
| Funcionalidades | GuÃa detallada de cada módulo |
| Arquitectura | Stack, esquema SQLite, flujos de datos |
| Desarrollo | Build desde fuente, contribuir, variables de entorno |
| FAQ | Preguntas frecuentes |
Hecho con 🖤 por iPiiix
