A bit of problem solving notes after using Quartz 5 for a while.

Fonts started disappearing in Safari, then Brave and Vivaldi. It looked like Times New Roman, which usually means the requested font never arrived and there was no useful fallback.

Initially it looked browser-specific. Ad blocking was disabled. Tracking protection was disabled. Still happening.

The real problem was two font systems running together.

Quartz core was loading the configured Google Fonts. At the same time, the quartz-fonts plugin was also trying to manage them.

Cloudflare Fonts then rewrote those Google requests into its own /cf-fonts/ delivery. Only the heading font survived. The body and code fonts were missing.

The plugin also left the body with only the requested font name and no proper fallback. When that font was unavailable, the browser dropped back to its default serif font. Basically Times New Roman.

The fix was small:

  • Disable @quartz-community/quartz-fonts.
  • Keep the typography settings in Quartz core.
  • Set cdnCaching: false.
  • Let Quartz download and self-host the fonts during build.

After that, the generated site contained all three font families locally. No runtime Google Fonts requests and nothing for Cloudflare Fonts to rewrite.

This also removes browser privacy settings, content blockers and third-party font delivery from the loading path.

Quick checks after the change:

  • Run a clean Quartz build.
  • Confirm the local font files were called.
  • Search the generated output for Google Fonts URLs. It did not find any.
  • Confirm the expected body, heading and code font definitions exist.
  • Test more than one browser after deployment.

Small configuration change, but the actual issue was a messy interaction between Quartz core, a Quartz plugin, Cloudflare rewriting and browser font fallback.