Article

TinyDebt : une app simple de suivi des dettes, sans backend

Les choix techniques de TinyDebt : stockage local-first, aucun backend et une interface apaisante qui reste discrète.

TinyDebt : une app simple de suivi des dettes, sans backend

Depuis quelques semaines, je développe TinyDebt, une petite app pour suivre les dettes, les prêts et les remboursements. Je voulais partager certains choix techniques, au cas où ils seraient utiles à celles et ceux qui créent des apps simples et ciblées.

🧩 Pourquoi l’ai-je créée ?

J’oubliais régulièrement les petites dettes entre amis, et les apps existantes me semblaient trop lourdes : inscriptions, publicités partout et fonctionnalités financières complexes.

Je voulais quelque chose qui :

  • s’ouvre instantanément
  • permet d’ajouter une dette en 3 à 5 secondes
  • fonctionne hors ligne
  • reste simple pour toujours

C’est ainsi qu’est née TinyDebt.

⚙️ Stack technique

TinyDebt est volontairement légère :

  • React Native (Expo) pour le mobile
  • Approche local-first avec AsyncStorage
  • Aucun backend : les données restent sur l’appareil (Firebase uniquement pour les sauvegardes)
  • TypeScript partout
  • Interface minimale avec des composants maison plutôt qu’une bibliothèque UI
  • Publication sur l’App Store et Google Play via EAS Build

Pas de compte utilisateur, pas d’analytics, aucune dépendance externe superflue.

🗂️ Modèle de données

Chaque entrée de dette ressemble à ceci :

type Debt = {
  id: string;
  name: string;
  amount: number;
  type: "owed" | "borrowed";
  createdAt: number;
  history: Repayment[];
};

type Repayment = {
  amount: number;
  date: number;
};

Tout garder sérialisable simplifie le stockage et les migrations.

🧠 Expérience local-first

TinyDebt ne dépend pas d’un serveur, donc :

  • les actions sont appliquées instantanément
  • il n’y a aucun état de chargement ou de synchronisation
  • l’app reste rapide même sur les anciens téléphones

C’est idéal pour un petit outil personnel.

🎨 Philosophie de l’interface

Je voulais une app apaisante :

  • des couleurs neutres et simples
  • aucun graphique ni tableau de bord
  • pas d’encombrement : un seul écran fait 90 % du travail
  • des zones tactiles accessibles pour une saisie rapide

Les petites apps n’ont pas besoin d’une interface complexe pour être utiles.

📦 Publication

Je veux toutefois garder un périmètre réduit : c’est tout l’intérêt.

🙌 Vos retours sont les bienvenus

Si vous développez des apps mobiles ou avez des idées sur les outils local-first, vos retours m’intéressent. L’app continue d’évoluer.