Durante las últimas semanas he estado desarrollando TinyDebt, una pequeña app para controlar deudas, préstamos y pagos. Quería compartir algunas de sus decisiones técnicas por si pueden ayudar a quienes crean apps pequeñas y centradas.
🧩 Por qué la creé
Siempre olvidaba pequeñas deudas entre amigos, y las apps existentes me parecían demasiado pesadas: registros, anuncios por todas partes y funciones financieras complejas.
Quería algo que:
- se abriera al instante
- permitiera añadir una deuda en 3–5 segundos
- funcionara sin conexión
- siguiera siendo sencillo para siempre
Así nació TinyDebt.
⚙️ Tecnologías
TinyDebt está diseñada para ser ligera:
- React Native (Expo) para móviles
- Enfoque local-first con AsyncStorage
- Sin backend: los datos permanecen en el dispositivo (Firebase solo para copias de seguridad)
- TypeScript en todo el proyecto
- Interfaz mínima con componentes propios en lugar de bibliotecas de UI
- Distribución en App Store y Google Play mediante EAS Build
Sin cuentas de usuario, sin analíticas y sin dependencias externas salvo las imprescindibles.
🗂️ Modelo de datos
Cada registro de deuda tiene este aspecto:
type Debt = {
id: string;
name: string;
amount: number;
type: "owed" | "borrowed";
createdAt: number;
history: Repayment[];
};
type Repayment = {
amount: number;
date: number;
};Al mantener todos los datos serializables, el almacenamiento y las migraciones son sencillos.
🧠 Experiencia local-first
TinyDebt no depende de un servidor, así que:
- las acciones se aplican al instante
- no hay estados de carga ni de sincronización
- la app funciona rápido incluso en móviles antiguos
Para una pequeña utilidad personal, encaja perfectamente.
🎨 Filosofía de diseño
Quería que la app transmitiera calma:
- colores neutros y sencillos
- sin gráficos ni paneles
- sin elementos superfluos: una pantalla hace el 90 % del trabajo
- botones accesibles para introducir datos rápidamente
Las apps pequeñas no necesitan diseños complejos para ser útiles.
📦 Publicación
- Disponible en App Store
- Disponible en Google Play
Aun así, quiero mantener su alcance reducido: esa es precisamente la idea.
🙌 Se agradecen comentarios
Si desarrollas apps móviles o tienes ideas sobre utilidades local-first, me encantará recibir tus comentarios. Siempre estoy mejorándola.
