Three weeks ago I told you the font picker was getting rebuilt, and I'd post the before/after when it shipped. Late Q3, I said.
I was wrong by a few weeks. It's today — and it isn't just the picker.
v2.0.0 bundles two pieces of work. The harder one was getting all 1,942 fonts to serve from inside Atlassian with zero data egress — the Runs on Atlassian work I wrote about three weeks ago. That took about six weeks of engineering. The picker refactor — the thing I'd promised for late Q3 — got folded into the same body of work and shipped at the same time. I'm Simon from NGPILOT, and here's what landed.
When I wrote about Runs on Atlassian certification three weeks ago, I framed it as a procurement win — no outbound calls to fonts.gstatic.com, no data leaving Atlassian's perimeter, the kind of thing that gets a font app through regulated-industry security reviews. What I didn't say was how long it took to actually get there.
Self-hosting 1,942 font families inside Forge isn't free. Each family ships in four variants (regular, bold, italic, bold italic) as woff2 — roughly 7,700 font files — and Forge's resource model isn't built for "serve thousands of binary assets from inside the platform." We had to write a bundling pipeline to partition the catalog, ship the bundles as Forge resources, and resolve URLs at runtime so a macro in a page could load the right font file without ever reaching outside Atlassian. End-to-end rendering broke several times before it worked.
That was the better part of six weeks on its own. The picker refactor was the easier half.
The old config UI had two problems. First, the catalog lived in a single alphabetical dropdown with 1,785 families — typeahead search worked, but only on names. You couldn't filter by Sans, Serif, Display, Handwriting, Monospace, or Icons, and the preview only showed the one font you'd already picked. Browsing meant scrolling, typing partial names, and guessing.
Second, the form was stepped — the variant, color, size, and preview fields only rendered after you picked a font. So if you opened an existing macro to tweak the size or color, you saw this until you re-selected the font:
The new picker is fullscreen and behaves more like fonts.google.com than a Forge macro config. Four things worth calling out:
↓ regular pill — instead of silently rendering something different.Every macro is stored as the same 7 fields it always was:
selectedFont, selectedVariant, previewText, selectedFontURL, textSize, textColor, textAlign
That contract is frozen. If you have pages built with the old picker, they render identically after the upgrade. Only the choosing changed — not what gets saved.
Google Fonts for Confluence on the Marketplace. Existing installs get v2.0.0 automatically on upgrade — no migration, no broken pages.
Google Fonts is one of a handful of macros we make for Confluence pages. If a font picker caught your eye, the rest of the shelf — briefly, in case one of these is also your problem:
Simon_NGPILOT_
0 comments