🌪️ ShadowTempest — Segundo Cerebro Local-First en Flutter & Dart
El Tridente de Obsidian + Notion + Google Keep en un Solo Motor Móvil
ShadowTempest es una aplicación multiplataforma (Android, iOS, Desktop) de gestión de conocimiento personal (second brain) desarrollada en Flutter 3.44 y Dart 3.12. Diseñada bajo la filosofía local-first y cifrado de conocimiento cero (zero-knowledge), une la soberanía de notas en Markdown de Obsidian, los comandos
/y bloques de Notion, y la captura fugaz de Google Keep.
- 💻 Repositorio GitHub: github.com/Alecwce/ShadowTempest (Privado)
- 🛡️ Seguridad: Cifrado militar AES-256-GCM + Argon2id
- 🧪 Testing: 63 pruebas unitarias e integración aprobadas
🏛️ Fusión de Modelos PKM
| Influencia | Funcionalidad Adoptada en ShadowTempest |
|---|---|
| Obsidian | Notas en Markdown estándar, enlaces bidireccionales [[wikilinks]] y propiedad local de archivos. |
| Notion | Menú emergente de barra inclinada (/heading, /todo, /callout) y organización por bloques. |
| Google Keep | Widgets de pantalla de inicio y botón de captura en 1 toque con etiquetas rápidas sin fricción. |
🔒 Arquitectura de Seguridad y Sincronización
flowchart TD User["👤 Usuario"] <--> Editor["📱 Interfaz Flutter (Editor de Bloques + Markdown)"] Editor <--> Riverpod["⚡ Gestor de Estado (flutter_riverpod)"] subgraph LocalStorage["💾 Almacenamiento Local (Dispositivo)"] Drift["🗃️ Drift ORM + SQLite FTS5 (Búsqueda Instantánea)"] Crypto["🔐 Módulo Criptográfico (AES-256-GCM + Argon2id)"] end Riverpod <--> Drift Drift <--> Crypto Crypto <-->|Payloads Cifrados (Zero-Knowledge)| SupabaseCloud[("☁️ Supabase Cloud Sync (PostgreSQL)")]
- Cifrado Zero-Knowledge en el Dispositivo:
- La clave de cifrado se deriva de la contraseña maestra del usuario mediante Argon2id.
- Los datos se cifran con AES-256-GCM antes de salir del dispositivo; ni siquiera los administradores de la base de datos en Supabase pueden leer el contenido de las notas.
- Búsqueda FTS5 en Memoria Nativa:
- Implementada mediante Drift ORM sobre SQLite FTS5, permitiendo búsquedas de texto completo en milisegundos sin conexión a internet.
🛠️ Stack Tecnológico
| Módulo | Tecnología |
|---|---|
| Framework UI | Flutter 3.44.8 |
| Lenguaje | Dart 3.12.2 Strict |
| Base de Datos Local | Drift ORM + SQLite FTS5 |
| Gestión de Estado | flutter_riverpod |
| Criptografía | cryptography (AES-256-GCM, Argon2id) |
| Sincronización Cloud | Supabase Cloud (PostgreSQL) |