Skip to content
Role
Solo founder – strategy · design · build
Team
Solo
Period
2026.07 – Present
Tools
Python, FastAPI, HarfBuzz, SwiftUI, MCP, Ollama

One manuscript, from print PDF to braille

GLIO Works

Summary

“The AI decides; code draws.” Not one character of the manuscript is rewritten, and production that each format used to re-interpret is finished from one source.

1.76×
faster typesetting

0 of 20,413 lines changed

5 → 7
of 9 PDF/UA checks passing

before and after auto-fix; only alt text needs a person

96
commits, all with Claude

Solo founder – product strategy, UX, typesetting engine, desktop app and MCP server

1 / 8
GLIO Works in use (1:01) – the MMCA Guide to Publication manuscript goes in, is typeset, read as spreads, reflowed at a new size, checked in 3D, and finally set beside the real book.

Overview

Making one book means print typesetting, EPUB, large print and braille each re-interpret the manuscript separately, with proofing repeated along the way. Korean typesetting also has no industry-standard implementation like Japanese JIS X 4051. With the European Accessibility Act (June 2025) and Korea's Digital Inclusion Act (January 2026) in force, accessible formats are becoming an obligation rather than an option.

Key decisions

  1. 01The AI decides; deterministic code typesets

    In a book, one changed character makes it unusable.

    The model outputs only decisions, as JSON; the engine draws the text. A test stops the engine from importing the LLM module.

  2. 02Build the engine, export IDML

    A commercial typesetting server costs heavily in licences and puts Korean typesetting on someone else's platform.

    An engine of HarfBuzz, its own line breaker (Knuth–Plass) and Korean line-break rules kept as data – with IDML export so designers can carry on in InDesign.

  3. 03People pick a role, not coordinates

    Per-paragraph overrides lead to the 'one heading in forty looks different' accident.

    Users choose a block's role only; millimetres and positions are the engine's job.

  4. 04The first product is accessibility remediation, not typesetting

    Pass and fail are objective, the standards are documented, and a working prototype already existed.

    Accessibility checks, auto-fix and alt-text approval ship first; typesetting follows.

  5. 05When unsure, body text – fail toward the less harmful

    A wrongly structured manuscript makes every format wrong together.

    Import reads the author's Word styles first, then layout heuristics, and only then, optionally, an LLM. Anything uncertain stays body text.

  6. 06Zero paid APIs; fonts never leave the machine

    Commercial Korean fonts aren't licensed for use on a server.

    AI runs in three tiers – rule engine, local model, the user's own subscription AI via MCP – and the macOS app processes manuscripts and fonts on the device.

Tested against a real book – the MMCA Guide to Publication

The benchmark is a real book made by designers. The National Museum of Modern and Contemporary Art, Korea's Guide to Publication, 2nd edition (2020), exists both as its manuscript (docx) and as the printed book, so the same manuscript can be run through GLIO and set beside the real thing. Over 15–16 August, this one book produced 114 result files as the engine was fixed.

Opening the book…

The same manuscript, typeset automatically by GLIO – 263 pages (final run, 16 Aug 2026)Open the PDF ↗

The pages GLIO set

125×220mm, matched
Trim size
300 / 263
Pages – real book / GLIO
114
Result files (this book alone)
  • Trim size matched – the first run came out at 161×256mm; iterations brought it to the real book's 125×220mm.
  • Page count differs – 300 pages in the real book, 263 from GLIO. The same text set tighter; matching the book's leading and margins is the next step.
  • Typefaces differ – the book uses commercial faces (Janson, AG Choijeongho, Akzidenz); GLIO uses OFL faces licensed for servers (EB Garamond, Noto Serif KR).

Another manuscript

The same engine runs on manuscripts of a different kind. Below, GLIO's pages for the exhibition catalogue Hanseongbu — Korean, English and Japanese on one spread.

Four other test sets

Other books that come with both a manuscript and the published result, run the same way:

  • MMCA Guide to Publication, 1st ed. (2018) – real 300 pages / GLIO 265, 144 result files.
  • MMCA collection cataloguing guide (2023) – real 88 / GLIO 61, 111 result files.
  • Seoul Museum of Art collection cataloguing guide – real 52 / GLIO 60, 55 result files.
  • Hanseongbu (exhibition catalogue) – real 176 / GLIO 288, 59 result files. Plate-heavy catalogues are still far off.

Architecture

  • Engine – Python and FastAPI; HarfBuzz shaping, its own line breaking, Korean typesetting rules as data.
  • Studio – a single-file web UI with no dependencies.
  • macOS app – SwiftUI, calling the engine as a local process instead of over HTTP, so manuscripts and fonts stay on the machine.
  • MCP server – exposes tools to AI clients for analysing artwork, creating specs, preflight, proof rendering, quotes and order requests. It never executes payment; it returns an approval link.

Results

1.76×
Typesetting speed (0 lines changed)
659 → 508MB
App size
0 of 57
Licence audit – forbidden licences

Where a person steps in

  • By itself – one manuscript becomes print PDF, EPUB3, large print, an accessible PDF and braille. Typesetting is checked by rules before any eye sees it.
  • By hand – what rules cannot catch — a picture's description, the reading order of a table, how a name is written — an editor fixes. The tool carries the draft as far as it can and leaves the judgement.

Reflection

  • Licensing is design too. No AGPL or GPL libraries, OFL fonts only. A good tool you can't distribute is a tool you can't use.
  • Still to do – matching the real book's page count and density, handling plate-heavy catalogues, and validating on real customers' books.