Repository navigation
fix(website): load Poppins, self-hosted on our own origin - #328
Merged
Merged
Conversation
custom.css asks for Poppins (--ifm-font-family-base) and the brand kit names Poppins the primary Intersect typeface, but docusaurus.config.ts requested Inter and JetBrains Mono from Google Fonts. Poppins was never downloaded, so headings, nav, docs and the brand kit painted in the Helvetica/Arial fallback, while Inter's faces stayed unloaded on every page — nothing in the repo referenced it. Serve Poppins 300-700 and JetBrains Mono 400/500/600 from website/static/fonts instead of a font CDN: 16 woff2 files (latin + latin-ext, the only subsets any content on the site uses) with the @font-face rules and unicode-ranges in static/fonts/fonts.css, wired up through the existing stylesheets field. Deliberately not run through the bundler: webpack inlines assets under 8 KB, which base64'd the Poppins files into the render-blocking stylesheet and defeated per-subset loading. OFL 1.1 licence texts ship beside the fonts. Verified on a production build: 97 pages request Poppins and none request Inter, the Poppins woff2 files load from this origin, and Poppins-Regular/Medium/Bold paint body, nav and heading text (CDP platform fonts, isCustomFont true). Refs IntersectMBO#325
IanoNjuguna
added a commit
to IanoNjuguna/developer-experience
that referenced
this pull request
Oct 14, 2026
Cuts duplication rather than adding: section 1's per-PR table repeated the descriptions in section 4, the review list appeared in three places, and section 3's bullets restated the summary table. Section 5 is now two sentences. Corrects two figures: October commits are 6, not 5 (six-month total 61), and the IntersectMBO#300 link pointed at PR IntersectMBO#328 instead of issue IntersectMBO#300. States the commit-counting basis in section 1 now that the appendix is gone, and names why June and July are empty — the retainer engagement started in August.
danbaruka
approved these changes
Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The site asks for Poppins and loads Inter.
--ifm-font-family-basehas been Poppins since the design-token baseline, and the brand kit names Poppins the primary Intersect typeface, butdocusaurus.config.tsrequested Inter and JetBrains Mono from Google Fonts. Poppins was therefore never downloaded — headings, nav, docs and the brand kit painted in the Helvetica/Arial fallback — while Inter's faces stayed unloaded on every page, because no stylesheet, component or doc in the repo referenced Inter.This loads Poppins and serves it from our own origin, so no page calls out to a font CDN.
What changes:
docusaurus.config.ts— the Google Fonts<link>is replaced by our own/fonts/fonts.css.website/static/fonts/— 16 woff2 (Poppins 300–700, JetBrains Mono 400/500/600, latin + latin-ext), the@font-facerules with unicode-ranges infonts.css, and both OFL 1.1 licence texts.Why the CSS is served verbatim instead of bundled: webpack inlines assets under 8 KB, which base64'd the ten Poppins files (87 KB) into the render-blocking stylesheet and defeated per-subset loading. From
static/, the browser fetches only the subsets and weights a page actually renders — about 38 KB of latin Poppins for a page using all five weights, mono only where code appears.Fixes #325
Type of Change
Testing
onBrokenLinks: "throw"andonBrokenAnchors: "throw", and it passesVerification
<head>wasfamily=Inter…&family=JetBrains+Mono; every Inter face reported statusunloaded; body text resolved through the Poppins fallback chain.isCustomFont: trueon body, nav, headings and/brand-kit.@font-faceblocks + 18 mono, replacing 35 Inter blocks that nothing used.Notes for review
static/aren't fingerprinted, so a future font swap relies on GitHub Pages' cache TTL rather than a changed URL.rel=preloadfor the regular weight — deliberate scope call, easy follow-up.MonthlyPulse.module.css:105asks for weight 800, which the old loader never provided either. Left out deliberately; happy to file it as a separate issue.Checklist
Not touched: CSS tokens, components, pages, docs, brand-kit copy. The only source line changed is the font request.