Crumbs
An Android app for collecting memories, wisdom and thoughts to pass on.
How it works
A notepad is already good at storing text — what actually stops people is deciding what to write. So Crumbs is three destinations over one archive, and answering a question files the answer automatically, so nothing asks you to pick a shelf before you write.
Today
One card holding one question. The writing surface is the back of the card that asked it, so there is nothing to choose before you start.
Trails
Threads of entries with an open question on the end. They assemble themselves from inline tags, and a trail you stop feeding quietly steps out of the list.
Everything
The whole archive in one list, ordered by when things actually happened rather than when they were typed.
A crumb doesn't have to be words: photos, voice recordings and arbitrary file attachments are copied into the app and mirrored into the folder beside the entry that names them. Tags are written into the entry's own text rather than a field next to it — the Markdown file is the whole truth about an entry, so a tag the file can't see would be a tag that stops existing the moment you open the folder without the app.
Highlights
- Write-through Markdown mirror: every save immediately writes a human-readable file with YAML front matter into a user-picked folder, so the archive outlives the app.
- Database as the single source of truth, with the folder as a one-way mirror — a deliberate decision to avoid a two-way sync problem Android gives no reliable way to solve.
- Prompt-driven capture that self-files: the question knows which section and tags its answer belongs to.
- Self-assembling trails from inline tags, with inactive trails ageing out instead of accumulating.
- Fuzzy “occurred” dates (e.g. a month with no day) for backdating memories, since backdating is most of what a memory app records.
- Photo, audio and file attachments mirrored alongside entries, with honest in-app limits stated up front rather than hidden.
- Reproducible release pipeline: tag-derived version codes and a signed universal APK published for direct install via Obtainium.
Design
The interface has one job: make writing the easiest thing on screen. Everything else — filing, tagging, browsing — is either automatic or a step behind the writing surface, and the visual language is tuned to keep it that way.
Material 3 expressive, dynamic colour
Compose Material 3 with dynamic colour on Android 12+, so the palette is drawn from the user's own wallpaper and the app reads as part of their phone rather than a brand parked on it. A hand-tuned warm-neutral scheme is the fallback below 12 and the base for both light and dark.
Type sized for reading, not for chrome
Entry bodies use a 17sp serif-adjacent reading scale with generous line height; interface labels sit two steps down in the sans stack. The prompt on a Today card is the largest type in the app — the question is meant to outweigh the UI around it.
One accent, spent carefully
Colour marks a single thing per screen: the active prompt, the unanswered end of a trail, the save state. Tags, dates and attachment chips stay neutral, so a screen with twelve crumbs on it still has an obvious next action.
Card-back writing, thumb-first controls
Answering flips the card rather than pushing a new screen, which keeps the question visible next to the answer. Primary actions live in the bottom third; destructive ones never do.
Dark mode as a first-class surface
Both modes are designed against the same tonal palette rather than inverted late. Dark surfaces use elevation tints instead of pure black so photo attachments keep their edges.
Accessible by default
Minimum 4.5:1 contrast on body text, 48dp touch targets, full TalkBack labelling on cards and chips, and motion that respects the system reduce-animations setting.
The same restraint runs through the file format. Front matter carries only what a future reader needs — title, occurred date, tags, attachment names — because a Markdown file cluttered with app bookkeeping is a file nobody wants to open outside the app.