I spent the past few weeks building what turned out to be a much bigger project than I thought it would be - with more AI assistance than I've ever had on any project, and I've been thinking about this.
In the end, I'm happy with the AI development. The machine laid a lot of bricks. But every judgment that makes the thing itself was mine: which typeface felt right, which historically accurate detail to reject because it hurt readability, what tone the notes should take, what to cut. Some days that feels like making. Some days it feels like being an editor with a very fast staff. Editors are proud of their papers too.
The important part: I built it for my mom. She can't tell which lines I typed and which I asked for. She can tell it was made for her. Maybe that's the part that survives every new tool — who it's for.
And aside from any question of "pride" .... this project would never have existed without AI support. I wouldn't have had the time. Wouldn't have pushed it to the level of excellence that it shows. And, would have been pulled off to other distractions, projects, and work long before it got over the finish line.
Follow-up, since I asked the questions above: I spent the evening running Justif against the hardest page I have: three 356px columns of 18th-century text set in IM Fell at ~17.6px with 24.3px leading. I came in curious and left planning the integration.
The numbers were better than I hoped. A full ~5k-word essay justified in about 280ms, and ~36KB gzipped including the en-US patterns. And the output is the part that sold me. The columns look like typesetting rather than CSS, which is the whole thing I'd been grumbling about.
The only snag I hit: a floated initial letter (drop cap) trips it — the first line ignores the float and overflows the gutter. Excluding that paragraph and leaving it on native justify renders perfectly, so it's cosmetic to work around, but a first-class exclusion selector would be lovely. I'll file an issue with the details and our measurements.
Best part: this experiment exposed that our sheets are currently set ragged right, which no printer in 1787 would have tolerated. Your library may be what finally makes us historically honest. Test page for context: federalistreader.org/papers/10/
Wow! I've spent the past few weeks setting 18th-century newspaper text on the web - justified, up to three narrow columns, period ligature, and the gap between CSS justification and real typesetting was a big part of the whole project. The browser's greedy line breaker plus hyphens: auto gets you maybe 80% there, and the last 20% is rivers, loose lines, and archaic words the hyphenation dictionaries have never met. "Fœderal" produces some genuinely creative break points. The result I got to I feel like is good, but not great.
Questions, from someone who wants this to work:
* Does Justif do its own hyphenation (Liang patterns?) or lean on the browser's? And is there a way to feed it exceptions for unusual or archaic spellings?
* How does it behave at narrow measures, say 35–40ch columns? That's where Knuth-Plass should shine most, but it's also where badness compounds fastest.
* What's the reflow cost on long documents (5–10k words) when the container resizes or the user scales the text — full re-run or incremental?
* Any thoughts on coexisting with text-wrap: pretty as browsers slowly grow real paragraph-level breaking?
Congrats on shipping this. I miss producing documents with TeX!
In the end, I'm happy with the AI development. The machine laid a lot of bricks. But every judgment that makes the thing itself was mine: which typeface felt right, which historically accurate detail to reject because it hurt readability, what tone the notes should take, what to cut. Some days that feels like making. Some days it feels like being an editor with a very fast staff. Editors are proud of their papers too.
The important part: I built it for my mom. She can't tell which lines I typed and which I asked for. She can tell it was made for her. Maybe that's the part that survives every new tool — who it's for.
And aside from any question of "pride" .... this project would never have existed without AI support. I wouldn't have had the time. Wouldn't have pushed it to the level of excellence that it shows. And, would have been pulled off to other distractions, projects, and work long before it got over the finish line.
It may be a different world. But, I'm all in.