AI developer & architect, building production-ready intelligent systems.

©2026
← Back to projects

PrototypeAI & agents ● 2026

Reframe

Read anything, beautifully — without a word rewritten

Paste an article, PDF or link and get back a lossless, visual reading experience — headings, callouts, definitions and comparisons made explicit — while every word stays the author’s own.

0Words rewritten
~15Output tokens per block
$0Demo mode, no key needed
Product film
Role

Product Engineer & Designer

Tech
Year

2026

Live

Private build — demo on request

Overview

AI summaries lose the author's voice and quietly drop detail. Reframe takes the opposite promise: it never rewrites your material, it re-architects it into callouts, definitions, comparisons and steps.

The source is parsed and split into deterministically addressed units before any model runs. The model — Groq's llama-3.3-70b behind a rotating key pool — only returns block types and unit ids; the server rehydrates every word from the original.

Without an API key it runs in a clearly flagged demo mode on deterministic heuristics, so it always works and costs nothing to try. Analytics and feedback flow to a Google Sheet through Apps Script.

The problem

People read long material — papers, docs, articles — and AI summaries are the usual shortcut. But a summary paraphrases, drops detail, and can confidently state things the author never wrote.

Reframe set out to make long text easier to read without changing a single word of it: find the structure that was always implicit and make it visible.

Tech stack
App
Backend & data
AI
Hosting, domain & DNS
Architecture
Reframe system architecture
The browser holds the library; /api/transform parses, addresses and verifies; the model only ever sees numbered units and returns ids.
  1. 01

    Parse

    Markup is structure, not content — headings, lists and tables are parsed directly rather than classified by a model.

  2. 02

    Address

    Text is split into deterministically addressed units like p0 and l1_0.

  3. 03

    Classify

    The model receives numbered units and returns block types, unit ids and short scaffolding words — about 15 output tokens per block.

  4. 04

    Verify

    assertCoverage checks every unit is used exactly once; any highlighted value must be a quoted fragment of its unit.

  5. 05

    Rehydrate

    The server rebuilds every body field from the source text, and the reader renders the blocks.

Inside the product
Reframe's paste-in screen (running locally in demo mode).
Source text re-architected into a callout, a definition and a comparison.
What the model actually returns: block types and unit ids, never text.
Under the hood: parse, address, classify, verify.
Features

Lossless by construction

The model has no channel to emit body text — it returns addresses — so paraphrase is structurally impossible rather than merely checked.

Coverage guarantee

Every source unit must be referenced exactly once. Missing or duplicated content throws and the section falls back to plain text.

Quoted fragments

Any number or date the model highlights must be a literal substring of its unit, or the block is demoted to prose.

Demo mode

Works with no key and no cost, clearly labelled in the interface.

Key decisions

Addresses, not text

Once the model can only return ids, verbatim stops being something to check and becomes a property of the architecture — and output cost drops sharply.

A verifier that can't fail isn't one

An early fidelity check reported 100% verbatim while the model rewrote sentences in an unchecked field. Every guarantee now has a test that fails before its fix.

Plain-but-complete beats polished-but-lossy

Any coverage or fragment violation demotes the block to prose instead of dropping or inventing content.

Write the divergence down

An ADR described a pipeline that no longer existed. Recording what actually runs — and when it changed — is now part of the process.

What's next
  • →PDF and link ingestion polish for the students-first wedge.
  • →Cross-device sync once the validation metric gates pass (v0 is localStorage-only).
  • →Replace Sheets analytics with a real store after the gates pass.
Gallery

Want something like this?

I can build one for you.

Tell me what you have in mind — I'll reply with questions, a plan and a quote.

Next projectBlack Hole →