Isaac Mineo

In beta · iOS & Web

Smart Rant

A private voice app for saying the messy version and making sense of your recordings later.

For People who think out loud and want to find what they said later, with the original recording as the evidence.

Visit Smart Rant (opens in a new tab)Read the source notes

iOS / Web · Notes reviewed 20 September 2026

Smart Rant recording at six seconds with Normal, Private and Burn modes and a Saved here first notice.
Normal, Private or Burn, chosen before anything is processed.

A private voice archive that remembers the context, not just the recording.

The problem

A long voice memo is easy to save and hard to revisit. Automatic summaries can be worse when they invent a personal trait, overstate a pattern or lose the evidence behind a sentence. Capturing the moment must also succeed independently of a network request or an expensive model call.

The goal

Smart Rant makes recording a thought immediate and makes the archive useful later. It is designed around a person’s own moments, people and recurring subjects rather than forcing every recording into a journal template or a coaching conversation.

The product

01Screen · Phone

Normal, Private or Burn, chosen before anything is processed.

App Store capture with fictional sample recordings.

02Screen · Phone

Past: every moment, searchable by what you said.

App Store capture with fictional sample recordings.

03Screen · Phone

A moment: the original voice, the words, and what it connects to.

App Store capture with fictional sample recordings.

04Screen · Phone

Ask: an answer that points back to the recordings it came from.

App Store capture with fictional sample recordings.

05Screen · Phone

You: patterns only where the recordings support them.

App Store capture with fictional sample recordings.

Interactive demo Searched in your browser

Ask your recordings

Ask something about these recordings. The answer is only what they say, quoted, with where each quote came from.

Recordings

  • Lisbon for the anniversary

    Jul 17, 2026 · 20:00 · 0:43

  • Trip budget

    Aug 13, 2026 · 20:30 · 0:39

  • Sintra day trip

    Aug 29, 2026 · 21:00 · 0:28

  • Flights booked

    Jul 25, 2026 · 21:10 · 0:26

  • Pricing question

    Aug 1, 2026 · 21:50 · 0:48

  • Pitched Leo

    Feb 27, 2026 · 22:10 · 0:53

  • Knee twinge

    Jul 14, 2026 · 18:40 · 0:36

  • Knee is fine

    Jul 28, 2026 · 07:00 · 0:27

  • Ran the full 10K route

    Sep 11, 2026 · 07:05 · 0:47

  • Decided to stay

    Sep 6, 2026 · 18:30 · 1:01

  • A good call with my brotherPrivate

    Sep 11, 2026 · 20:20 · 1:28

    This moment is Private, so Ask doesn't use it.

Try

Portfolio demo, not Smart Rant's own search. The recordings are fictional fixtures from Smart Rant's design scenarios, and the matching runs in this browser with simple word ranking; the real app uses hybrid retrieval, a reranker and a model to write the answer. What carries over is the rule: Private moments are never read, every claim quotes a source, and weak evidence gets no answer.

Every outcome, as text
  • What did I say about pricing the app? Pricing question: “I still haven't decided what I think about pricing.”
  • When did my knee start hurting on runs? Knee is fine: “Knee's fine, it was the shoes. New shoes and a six mile run with zero pain.”; Knee twinge: “Little twinge in my left knee on the hill. Thinking about Dad's knee and getting nervous.”
  • What did Maya find for the Lisbon trip? Lisbon for the anniversary: “Maya wants to do Lisbon for our anniversary.”; Trip budget: “Went through the trip budget with Maya.”; Sintra day trip: “Maya found a day trip to Sintra.”
  • What did my brother say on the phone? Not enough evidence yet.
  • What's my favourite restaurant? Not enough evidence yet.
Where this comes from

smart-rant @ e03179c

  • packages/contracts/fixtures/design/scenarios.ts (fifty-across-time; file header: all content fictional)
  • packages/server/src/ask.ts:37, 112-115 (Normal moments only; Private refusal)
  • packages/engine/src/ask.ts:112-146 (insufficient evidence)
  • apps/web/app/app/ask/[id]/answer-view.tsx:42-112 (wording)

01 · System

How it fits together

Capture never waits for the network. Everything after it is a durable job.

Select a part to see what it is responsible for and what it connects to.

Every part and connection, as text
iPhone archive Interface

SwiftUI capture that commits the recording locally before any follow-on work.

Trade-off: Mode is persisted asynchronously, so an interrupted capture is a failure case to recover from.

TypeScript API: consented upload

Web app Interface

Next.js with Clerk sign-in, over the same archive.

TypeScript API: archive requests

TypeScript API Service

Accepts uploads into private object storage and records work.

Durable job queue: recorded job

Durable job queue Data

Token-bound leases, heartbeats and classified retries in Postgres.

Worker: leased job

Worker Worker

Transcription, normalization, embedding, extraction and thread refresh as separate stages.

Trade-off: It checks consent, revision and analysis epoch first, so a stale worker cannot publish into a newer privacy state.

Postgres + pgvector: evidence and vectors

Postgres + pgvector Data

Transcripts, structured evidence and vectors for semantic and lexical recall.

TypeScript API: quoted sources

The native client uses SwiftUI and a durable local archive. The web application uses Next.js and Clerk. The current backend is a Node/TypeScript API and worker over Neon Postgres with pgvector and private object storage; older Supabase material is historical, not the current deployment design. Work is recorded in a durable database queue with token-bound leases and revision/analysis-epoch checks. The pipeline separates transcription, normalization, embedding, extraction, temporal processing, thread refresh and evaluation.

02

What it does

  • Save before processing

    The capture controller creates a durable take before recording audio and commits the local recording before invoking follow-on work. Recoverable files remain available when finalization fails.

  • Different privacy modes

    Normal, Private and Burn have different processing rules. Private recordings can use cloud transcription only through the separate explicit consent path; that is not permission to include them in normal archive analysis.

  • Evidence-backed recall

    Archive questions use semantic and lexical retrieval, structured evidence and source-grounded quotations. Unsupported or insufficient evidence should produce a limited answer rather than a confident story.

  • Durable background jobs

    Workers claim token-bound jobs, heartbeat while running, classify retryable failures and record outcomes. A stopped process is recoverable through the queue rather than through wishful post-response work.

03

Built with, and why

Client

Native capture on the phone, with a web app beside it.

SwiftUI · Next.js · Clerk

Backend

An API and worker over Postgres with vector search.

TypeScript · Neon PostgreSQL · pgvector

Infrastructure

Private audio storage, a durable queue and web hosting.

Private object storage · Durable job queue · Netlify web hosting

04

Decisions and trade-offs

Keeping a recording independent of the cloud

Approach

The capture state machine prepares durable storage before the first audio frame and treats save completion separately from processing completion.

Trade-off

The extra states and recovery paths are failure cases of their own. A successful UI animation must not be the only evidence that the recording is safely stored.

Making personal claims only with evidence

Approach

Extraction, retrieval and generated wording are checked against source material. Recurrence and trait-like statements require more than one anecdote, and the wording guard rejects several forms of unsupported interpretation.

Trade-off

Regex and schema checks are conservative heuristics, not a semantic proof. They can reject useful phrasing and miss a paraphrased overreach, so they can be wrong in both directions.

05

Check the work

Links checked 21 September 2026

Ask about Smart Rant

Answers quote the source notes and cite them.