Back
2026

Arruma AI

A habit tracker driven from WhatsApp, built on two scoring models: maintenance habits that reset every midnight, and construction habits that only ever accumulate.

Arruma AI preview
The problem

Habit apps score every habit the same way, so brushing your teeth and studying for a year sit in the same list with the same streak counter. Miss a day of either and you are punished identically, which is wrong in both directions.

The outcome

Running daily as my own habit system, with the WhatsApp bot handling check-ins so the web panel is optional rather than a chore.

About this project

Arruma AI splits the day into two tracks that are deliberately scored in different ways. Maintenance — brushing your teeth, doing the dishes — holds today up and resets at midnight, so it is shown as 'today, 4 of 8'. Construction — studying, applying to jobs, training — only pays off cumulatively, so it never resets and is shown as a total and a streak. Skipping one day costs nothing; skipping thirty costs a year. Everything is driven from a WhatsApp bot that nags, records and answers, backed by a Next.js panel. A single Baileys session serves every account: the sender's number identifies the account, and messages from unknown numbers are ignored without their text ever being stored. Exact commands are always matched first, and the language model only handles what would previously have fallen through to 'I didn't understand'. Privacy is enforced structurally rather than in the prompt — one file assembles context and one file talks to the model, and neither imports the notes tables, an invariant you can check with grep.

Key Features

Two-track scoring: maintenance resets nightly, construction never does
Multi-tenant WhatsApp bot over a single session, keyed by phone number
Deterministic commands first, LLM only as the fallback path
Prompt context structurally isolated from private notes
Scheduled nudges reconfigured live via Postgres LISTEN/NOTIFY
Voice notes transcribed by a self-hosted faster-whisper service

Tech Stack

Next.jsReactTypeScriptTailwind CSSDrizzle ORMPostgreSQLRedisBaileysFastAPIDockerRailway
Arruma AI