Live · publishing product

Hotpress

A shipped collaborative publishing product: real-time writing, CRDT editing, print-production exports, Git-versioned storage, and paid product surfaces. Live at hotpress.app.

Live product hotpress.app Deeper review on request

Problem

Serious writing and publishing work sits between authoring, collaboration, typography, storage, export quality, and commerce. A credible product needs to feel like an editor while also handling the unglamorous backend pieces that make publishing real.

What I Built

I built and shipped Hotpress — publicly named Hotpress, live at hotpress.app with Free/Pro/Team pricing: a collaborative writing and publishing product where teams write together in real time and every save can regenerate a print-ready book. The editor is Lexical with Liveblocks/Yjs CRDT collaboration: live cursors, presence, and comments. The publishing pipeline produces print-production PDF — CMYK output intent, bleed, trim marks, PDF/X — plus EPUB export, with 20+ typography templates and full front- and back-matter control.

Storage is GitHub-backed: every save is a commit in the user's own repository, so there is no vendor lock-in, and access security was migrated from broad OAuth scopes to a scoped GitHub App installation-token model. Stripe billing records purchases through idempotent webhooks. The result is ~41K lines of strict TypeScript on Next.js and Drizzle/Postgres, guarded by a ~4,800-line Playwright end-to-end suite covering the editor, collaboration, formatting, sharing, and the export paywall.

Product surface Editor, project library, 20+ typography templates, review, and publishing workflow.
Collaboration core Lexical editor with Liveblocks/Yjs CRDT real-time editing and durable document state.
Business layer Print-production PDF and EPUB exports, Git-backed storage, and Stripe subscriptions with idempotent webhooks.
Hotpress system diagram showing writer surface, CRDT collaboration, export pipeline, GitHub storage, Stripe and Drizzle, book outputs, review links, and commerce path.
Public-safe system diagram of the shipped product. It captures the product-engineering signal without exposing private content, customer data, manuscripts, repository internals, or payment configuration.

System Architecture

Technical Decisions

  • Lexical plus Liveblocks/Yjs CRDT for conflict-free real-time editing instead of lock-based collaboration.
  • Git as the storage engine: every save is a commit, so history, recovery, and portability come for free and users keep their own manuscripts.
  • Print-production output — CMYK output intent, bleed, trim marks, PDF/X — rather than a generic "export to PDF".
  • Scoped GitHub App installation tokens instead of broad OAuth scopes for repository access.
  • Idempotent Stripe webhooks so billing state survives retries and replays.
  • A ~4,800-line Playwright end-to-end suite as the quality backbone for editor, collaboration, and export flows.

What This Proves

Unlike the private flagships, this one anyone can click: Hotpress combines collaborative editing, export infrastructure, storage design, monetization, and taste-heavy user experience in a single shipped product.

Privacy Boundary

The product itself is public — anyone can use it at hotpress.app. What stays private: user manuscripts, customer data, payment configuration, and repository internals. Screenshots and demos use fake content, and deeper source review is available on request.