A Word-style paged rich-text editor for React. Multi-page layout that reflows like Microsoft Word — page boundaries appear as you type, content flows onto the next page, and the printed output matches the editing view.
Most rich-text editors give you a continuous scroll. Tools that look paginated usually draw page-break lines on top of that scroll — the breaks are decorative, and the real page layout only happens later, in a separate export step. Pagedly is different: you type directly onto the real, reflowing page. The thing on screen is the page, not a guide layer floating above a different document.
Pagedly gives you real pages:
- Word-level reflow at page boundaries — type past the bottom of a page and the words slide onto the next sheet, mid-paragraph, mid-sentence. The caret stays with your text across the reflow.
- The edit surface looks like the print surface. What you see on screen is what comes out of the printer.
- Print to A4 (or save to PDF via the browser print dialog) with letterhead, signature, and attachment chrome injected at print time.
- In-document find / replace with all matches highlighted at once.
- Toolbar with bold / italic / underline / lists / alignment / quote, font family (system + 14 Google fonts loaded on demand), font size, text + highlight colors, links, images (auto-downscaled), tables, manual page breaks.
- Cross-browser: Chromium and WebKit verified, Playwright e2e suite ships with the package.
Live demo: pagedly.dev
- Letter generators (HR, legal, finance) — the original problem we built this for.
- Contract editors with named sections and per-section persistence.
- Report builders where the print layout has to match the edit view exactly.
- Any product where "this is a document, not a feed" matters.
Pagedly drops into any React app — Vite, Next.js (App Router or Pages Router), Remix, CRA, Astro React islands, TanStack Start. The editor renders client-side; in Next.js App Router you import it inside a "use client" component.
"use client";
import { LetterEditor, type LetterDraft } from "pagedly";
import "pagedly/styles.css";
export function MyLetter() {
const [draft, setDraft] = useState<LetterDraft>(/* ... */);
return <LetterEditor draft={draft} onDraftChange={setDraft} />;
}Full API documentation ships with the package.
Buy Pagedly here: pagedly.dev (powered by polar.sh)
After purchase you receive a pagedly-X.Y.Z.tgz package by email and via your customer dashboard. Drop it into your project root and npm install ./pagedly-X.Y.Z.tgz.
Pagedly is sold under a commercial proprietary license — perpetual right to use and modify the source within your own applications, no standalone redistribution, no public hosting of the source, no use to build a competing paged-editor product.
Full terms are included with the package. For licensing questions: licensing@pagedly.dev.
- Questions before buying →
hello@pagedly.dev - Licensing →
licensing@pagedly.dev - Customer support after purchase → handled through your customer dashboard.
This repository contains only the marketing README. The source code is delivered to paying customers through their dashboard — it is not hosted publicly.
