Otto Bonilla: Ripple

Product

Ripple: personal notes with local semantic search and daily review

How Ripple combines durable notes, local embeddings, voice transcription, and a small daily review queue without generating invented answers.

Saving an idea is easy; finding it again when it matters is harder. Ripple is a small personal memory application for capturing passages and insights, revisiting selected items, and searching by meaning.

Capture, review, and find

Captures can contain written thoughts, pasted passages, source links, or short voice recordings. A recording is transcribed locally and can be edited before saving. A source link remains a reference; the app does not automatically scrape its page.

Review assigns at most three items per Dublin calendar day. Practice can hide a passage until reveal, and feedback changes its next due date. Reference-only items remain searchable without joining the review queue.

Preserve the note before indexing it

SQLite stores original text, notes, sources, review state, and search data. Durable saving happens before meaning-based indexing, so a missing model does not prevent the original capture from being kept.

Local embeddings and SQLite FTS5 combine semantic retrieval with exact wording. English speech transcription uses a local Whisper model. After the initial model downloads, these features run on the host without sending captures to a paid AI service.

Retrieval and offline access have boundaries

Search returns saved material with its source and note. It does not invent an answer. If semantic indexing is unavailable, the interface reports a wording-only fallback.

App-shell caching is implemented, but offline saving, synchronization, and offline recording are not. The documented local server has no login and should not be exposed publicly. English transcription can make mistakes and needs review.

A small collection that remains inspectable

The README explains local setup, backups, private phone access, and verification. The architecture guide describes the distinction between the durable collection and the models that help retrieve it.

Sources and further reading

Based on the linked project documentation, reviewed on 2 November 2026. Capabilities and limitations describe that documented version.

View repository