Artículo

TinyDebt: un control de deudas sencillo y sin backend

Un vistazo a las decisiones técnicas de TinyDebt: almacenamiento local-first, sin backend y una interfaz tranquila que no estorba.

TinyDebt: un control de deudas sencillo y sin backend

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

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.