Research workspace · 2025

AtlasEditor rebuilt around a block model; time-to-first-doc cut in half.

A research workspace whose editor had grown into a tangle of special cases. I rebuilt it around a single block model and cut the time it takes to get a first document written.

Role

Design + frontend

Year

2025

Stack

Next.js · TypeScript · Tiptap · Postgres

-52%
Time to first document
9 to 1
Editor code paths
2 wks
To first shipped increment

Theproblem.

Every new content type had been bolted on as its own code path. Nine of them existed. Adding a tenth meant touching the editor, the serialiser, the print stylesheet, and three test suites — so nobody added one.

WhatI did.

  1. 01

    Modelled every content type as one block primitive with typed attributes, replacing nine bespoke paths.

  2. 02

    Moved formatting state into the document rather than component state, which made undo and collaboration behave predictably.

  3. 03

    Built the empty state as a guided first document instead of a blank page with a tooltip.

Whatchanged.

Adding a content type is now one schema entry and one renderer. Time-to-first-document halved, and the support queue lost its single most common ticket.