Featured · AWS Summit Seoul · May 20–21, 2026

Cloud Typesetting Engine

The typesetting engine
made for serious books.

Built by a team that wrote its own programming language for publishing layout.

Cloud-native, engineered for print-grade output.
Free to start.

To move a single word to the next line,
we recompute the entire paragraph.

Why ATLAS

The depth a serious book deserves.

Built by TAFO

A team that built a language, now builds books.

Before we built a typesetting tool, we built the language to describe one. Topaz is our Rust-based, domain-specific language for publishing layout. Every decision that turns a manuscript into a book — the rhythm of the prose, the breath of a chapter, the visual weight of a page — became a single, expressible rule.

We took that engine to the hardest typography market in the world. Korean book publishing runs on stricter legibility expectations than any other modern script: syllable-block composition, per-character line breaking, and word spacing too sparse to stretch for justification. Before us, there were exactly two tools for it — InDesign, and manual labor. We built ATLAS as the third.

The engine that solves Korean handles Latin with room to spare. The same Rust binary runs in your browser as on our server — same algorithm, same font metrics, same line breaks. The most common frustration of any author — “the preview was fine, the PDF wasn’t” — is something we've made structurally impossible.

Vellum proved that authors deserve commercial-grade typesetting. We're proving they deserve it without the desktop install, the macOS lock-in, or the per-book buyout. In any browser. Free to start.

Written in Topaz

We wrote the core of the engine in our own language.

ATLAS's line-breaking algorithm is written in Topaz, the language we built — every variable name, in Korean. We implemented the same algorithm in Rust and proved the two byte-for-byte identical across 3,780 cases. The Rust twin runs where speed matters, but both ship inside the very WebAssembly rendering this page. Don't take our word for it — disassemble it.

Topaz is a real language — grammar, playground, and binaries at topaz.ooo.

나쁨도.tpz
function 나쁨도(너비, 목표너비, 글자수, 공백수, 분할종류, 마지막인가) -> int {
  let 여유   = 목표너비 - 너비
  let 절대여유 = 절댓값(여유)
  let 원시R  = if 절대여유 >= 4 * 목표너비 { 4 * R } else { 절대여유 * R / 목표너비 }
  let 비례R  = 반올림나눗셈(원시R * 100, 조정상한센티)
  let 제곱   = 비례R * 비례R
  let mut 기본B = 반올림나눗셈(제곱 / R * (1000 * B), R)

  if 마지막인가 { 기본B = 반올림나눗셈(기본B * 2, 5) }
  if 여유 < 0  { 기본B = 기본B + 20000 * B + 반올림나눗셈(20000 * B * 비례R, R) }
  if 분할종류 == "latin_hyphen" { 기본B = 기본B + 65 * B }
  기본B + 10 * B
}

How ‘bad’ a line is, distilled to one integer · from the real 나쁨도.tpz

How it works

From manuscript to press-ready PDF
in three steps.

  1. 01

    Paste your manuscript

    Plain text, Markdown, or direct paste — whichever way you write.

  2. 02

    Automatic typesetting

    ATLAS solves each paragraph with publication-grade typography rules to find the optimal line breaks and pagination.

  3. 03

    Export press-ready PDF

    A print-ready interior PDF, validated against commercial print-shop specifications.

Output Specimen

The fastest way to show what we mean.

A book spread typeset with ATLAS

An interior spread typeset entirely with ATLAS

Production-tested

Tested against the strict ingestion specs of every major Korean print and digital publishing channel.