Back to projects

Memoato

Live · early product

Memoato starts with an ordinary sentence about your day and keeps the original note intact. I build the product and the underlying memory system: capture, structured facts, corrections, integrations and recall.

Memoato public homepage showing a preserved note and the context remembered from it
The public website introduces capture through an original note and the details remembered from it.

My part.

Founder and hands-on engineer. I work on natural-language capture, the underlying record model, integrations and the path from a saved note to useful recall.

Role
Founder and hands-on engineer
Period
2025 - Present
Stage
Live product, active development

Wasp · React · Postgres · Hetzner

The problem.

Most tracking tools make the user choose a category, form, unit, and exact structure before recording anything. That friction is especially expensive on busy days, which are often the days worth remembering. Memoato has to accept imperfect input quickly while keeping the raw record, derived facts, privacy choices, and later corrections understandable.

Capture, review and return to the source.

  1. Capture a short natural-language note from the web app, an MCP client, or another trusted integration.
  2. Store the raw entry first, then extract structured facts with deterministic rules and a scoped AI fallback.
  3. Match confident facts to existing categories, keep uncertain material visible, and avoid silently inventing history.
  4. Turn accumulated entries into timelines, progress views, and useful recall without making dashboards the primary input model.

Under the hood.

Product app
Wasp and React for authenticated capture, timelines, category views, and account workflows
Source of truth
PostgreSQL through Prisma for users, raw entries, structured events, categories, and timestamps
Ingestion
Raw-first API pipeline with deterministic parsing, optional model fallback, and asynchronous processing
Integrations
Revocable, hashed API keys scoped to raw-entry writes, plus a private MCP bridge
Operations
Hetzner deployment behind Caddy and systemd, with GitHub Actions release automation

Engineering choices.

Raw before derived

The original note is stored before parsing begins. Structured events can be corrected or rebuilt without erasing what the user actually recorded.

Confidence is a product concern

A plausible parse is not automatically a fact. Confident matches can become events; uncertain notes stay visible instead of being forced into the wrong category.

Categories are views

Goals, charts, and category pages remain useful, but capture starts with the user's words rather than requiring the user to navigate the data model.

Narrow integration access

MCP and automation tokens can write raw entries without receiving broad account access, and every key can be revoked or expired.

What I’ve worked on.

  • Natural-language quick logging with raw-entry preservation and asynchronous fact processing
  • Timeline, category, goal, chart, ordering, and human-readable daily summary views
  • Deterministic parsing plus optional AI-assisted extraction with unmatched notes retained
  • Scoped API keys and MCP ingestion for low-friction logging from trusted tools
  • Authentication, PWA support and a self-hosted production deployment

What comes next.

The next step is to make recall as useful as capture: improve correction flows, alias memory, provenance for derived facts, and summaries that help without pretending the system knows more than the underlying entries support.