Skip to content

Redesign the website - #115

Merged
TomPohys merged 8 commits into
openmaptiles:masterfrom
maptiler:master
Sep 14, 2026
Merged

TomPohys merged 8 commits into
openmaptiles:masterfrom
maptiler:master

Conversation

@TomPohys

@TomPohys TomPohys commented Sep 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Redesign of openmaptiles.org:

  • faster page loads
  • new visual design
  • updated content
  • simplified navigation
  • clearer split between OpenMapTiles and MapTiler's commercial offering

Changes

  • Design: new look across every page

    • homepage hero
    • interactive map-styles carousel
    • datasets section
    • contributors section
    • rebuilt documentation shell (typography, color, spacing)
  • Content:

    • refreshed copy
    • Links and examples that had drifted from how OMT actually works today.
    • All the links have been fixed and updated, and the wording on almost every page has been improved.
  • Information architecture: reworked docs shell, improved navigation, menus and page hierarchy.

    • Added search to the documentation.
    • Consolidated 16 /layers/<name>/ pages into one /docs/schema/ page with per-layer anchors.
    • Generated language pages from a single data file instead of 59 hand-maintained HTML files.
    • Added /styles/:slug/ preview pages for the six open styles.
  • OMT vs. MapTiler boundary:

    • Retired pages that were about MapTiler's paid product (hosting, coordinate systems, extracts, downloads, production package, support, terms).
  • Performance:

    • Homepage image weight before first paint: 2,440 KiB → 249 KiB (compressed + prioritized hero image, right-sized thumbnails, lazy-loaded below-fold images).
  • Build:

    • Pinned Jekyll/Ruby versions.
    • Moved build to GitHub Actions.
    • Added verify-build gating every deploy (checks links, images, stylesheets, redirects).

Thanks a lot @martyan, @MartinMikita, @xkomczax, @agilek

martyan and others added 6 commits August 16, 2026 11:47
A new design across every page, with the content and build changes needed to support it.
Same domain, same host, still Jekyll — every URL that is live today still answers.

Every layout and template is rebuilt. New homepage with a hero, an interactive map-styles
carousel, a datasets section and a contributors section; a new documentation shell; new
typography, colour and spacing throughout. Stylesheets move out of the `styles` submodule
and into `_sass/` in this repository, so the submodule is removed.

CSS ships as `core.css` plus one bundle per section, selected by each page's
`stylesheets` front matter. JavaScript is hand-written ES modules with no build step;
lunr and the MapTiler SDK are vendored under `assets/js/vendor/`.

New alongside the redesign: client-side documentation search, `/styles/:slug/` preview
pages for the six open styles, and language pages generated from `_data/languages.json`
rather than 59 hand-maintained files.

The schema reference changes shape: the 16 `/layers/<name>/` pages become one
`/docs/schema/` page with per-layer anchors. Same content, one page instead of sixteen.
Nine further pages are retired to the MapTiler destinations they already point at —
/hosting/, /coordinate-systems/, /extracts/, /downloads/, /production-package/, /support/
and /terms/ — with /inspect/ and /faq/ moving into /docs/.

No URL is dropped. All 57 legacy paths ship as redirect stubs listed in
`script/redirects.tsv` and asserted on every build, so a redirect that stops working
fails CI rather than the site.

Jekyll 4.4 with Ruby 3.3.6 pinned in `.ruby-version` and gems in `Gemfile.lock`; the
previous tree had no `Gemfile` and inherited whatever the Pages image shipped.

The build runs in GitHub Actions rather than the Pages sandbox, because the sandbox runs
Jekyll in `--safe` mode, which skips `_plugins/` and still exits 0 — 91 routes instead of
156, reported as a success. The 65 it drops are the generated language and style pages.

**This requires Settings -> Pages -> Source to be set to "GitHub Actions".** It is a
repository setting and nothing here can enforce it. Left unchanged, the deploy job fails
and nothing is published, so the current site stays up.

Nothing publishes unless `script/verify-build` passes: it asserts the route floor, that
each plugin ran, every in-site link and image, every stylesheet reference, the `CNAME`,
and every row of the redirect manifest. The same script runs on pull requests without
deploying.

The homepage fetched all 27 of its images before first paint; it now fetches 5. The hero
backdrop, which is the page's LCP element, is WebP rather than a 530 KiB PNG and carries
`fetchpriority="high"`. The mock-up's `2x` srcset candidate was a nearest-neighbour
upscale of the `1x` carrying no additional detail, and is gone. Style thumbnails were
1600x900 for a 380 px card and are now 768x432. Below-fold images are lazy-loaded, with
all card markup still server-rendered.

Homepage image bytes before first paint: 2,440 KiB -> 249 KiB.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The aerodrome_label diagram alt texts read "Aerodome".

/docs/host/maptiler-cloud/ said "free" where /docs/raster/maptiler-cloud/
said "free (for non-commercial use)". The raster page now canonicalizes to
the host page, so the qualifier added in openmaptiles#100 has to be on the host page or
it drops out of the indexed copy.
@TomPohys
TomPohys merged commit 8f40f6e into openmaptiles:master Sep 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants