Skip to content

versatiles-fonts

Version 2026.144.1443
Repo superproject

Pre-rendered SDF glyph PBFs for the 10 VersaTiles font families, installed locally for MapLibre GL JS label rendering. Installs the versatiles-org/versatiles-fonts release bundle (fonts.tar.gz — all 10 families: Fira Sans, Lato, Libre Baskerville, Merriweather Sans, Noto Sans, Nunito, Open Sans, PT Sans, Roboto, Source Sans 3) into /opt/versatiles-fonts as signed-distance-field PBFs laid out per MapLibre’s {fontstack}/{range}.pbf glyph-URL convention. Serving the glyphs locally lets the shortbread MapLibre cell render labels without hitting tiles.versatiles.org as a runtime font CDN; the bundle is re-exported by versatiles-frontend at /fonts/.

This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.

Intent Step
run mkdir=/opt/versatiles-fonts
run command=set -euo pipefail ASSET=$(curl -fsSL “https://api.github.com/repos/versatiles-org/versatiles-fonts/releases/latest” \ | jq -r ‘.assets[].browser_download_url’ \ | grep -E ‘/fonts.tar.gz$’ \ | head -1) if [ -z “$ASSET” ]; then echo “ERROR: could not find fonts.tar.gz on versatiles-fonts latest release” >&2 curl -fsSL “https://api.github.com/repos/versatiles-org/versatiles-fonts/releases/latest” \ | jq -r ‘.assets[].name’ >&2 exit 1 fi TMPDIR=$(mktemp -d) cd “$TMPDIR” curl -fsSL “$ASSET” -o fonts.tar.gz tar -xzf fonts.tar.gz -C /opt/versatiles-fonts cd / rm -rf “$TMPDIR”
check the install directory /opt/versatiles-fonts exists
check at least one signed-distance-field glyph PBF was unpacked from the release tarball
check the default MapLibre font Noto Sans Regular is present
check glyphs follow MapLibre’s {range}.pbf naming so the base 0-255.pbf range file exists
agent-check a MapLibre GL JS client can fetch any installed family’s glyph ranges via the standard {fontstack}/{range}.pbf glyph-URL template
check package=curl
check package=jq