Aug 4, 2025
Welcome to the July edition of the MapLibre newsletter! We start with a note of gratitude to our sponsor Jawg Maps.
This month’s newsletter brings exciting updates across the MapLibre ecosystem, from enhanced font support for complex scripts in Native, a new frontend for Martin, to our growing presence at global conferences. We also kicked off the 2025 Governing Board election process, a great opportunity to help shape the project’s future. Read on for the latest updates and ways to get involved!
MapLibre’s 2025 Governing Board election process has begun!
Date | Milestone |
---|---|
Aug 15, 2025 | Deadline for Voting Member nominations and Board candidate registration |
Aug 22, 2025 | Deadline for approval of new Voting Members (via PR review) |
Aug 29, 2025 | Governing Board election poll closes (OpaVote) |
font-faces
property (see the implementation PR). This allows you to use TrueType fonts with MapLibre Native. Font files are needed for text shaping which many complex (non-latin) scripts require. Thanks goes to Alan Wei Chen, Stefan Karschti and Grab for contributing this functionality.Screenshots showing complex map rendering. Style © OpenMapTiles. Map data from OpenStreetMap.
Crowdsourced Device Testing: Adrian Cojocaru has developed long running tests for Android and iOS. Now we are thinking about how we can actually run these. Since AWS Device Farm limits runs to 150 minutes, we are thinking about distributing an app that people can download, to run these tests on their own devices. This app would report any issues to a central place. So a crowed-sourced approach to bug hunting. More info will follow and please share your ideas!
Render Area Limiting: Yousif Aldolaijan has contributed a PR to limit the area that is rendered to, while keeping the surface area the same size. This is useful for performance reasons when navigation elements are sometimes overlapping those areas. See #3676 for the PR and discussion.
Concurrent Animations: The location component on Android and iOS takes control of animations. This means that users of the built-in location component cannot kick off your animations of their own, as it would conflict with those of the location components. Yousif is exploring concurrent animations as a possible fix for this behavior. Join the discussion if you have a similar use case or have solved this problem.
Style JSON Hook: Malcolm Toon contributed a PR (see also the issue) to add a hook to transform the style JSON when it is loaded or fed to the map view. Please join the discussion if you have another interesting use case for this.
Custom protocols: We are investigating what custom protocols similar to the MapLibre GL JS addProtocol
hook would look like for Native. Malcolm has cooked up a PR. One discussion point is, if it should be synchronous or asynchronous on the platform level, if it is desirable (and feasible) to give access to the built-in resource loading to the platform level and if custom protocols should be able to do resource loading as well as transformations (or just the former). Please let us know your use cases you imagine for this functionality.
Qt backend: Birk Skyum has made several PRs to bring the Vulkan and Metal backend to the Qt platform.
macOS Metal bugfix: The Node.js platform with Metal (on macOS) stopped rendering after 32 frames. We added a flag that will set up an Objective-C autoreleasepool in the core rendering loop that fixes this issue. A new version of the maplibre/maplibre-gl-native npm package which contains this fix will be out shortly.
Releases this month:
Version 5.6.1 was released this month with a few bug fixes. We also sorted the examples pages in the documentation, for better consistency between the page titles and their locations in the table of contents. This change might cause a few temporary broken links in Google search, but we’re sure the broken links will be a short lived problem and expect this to be resolved quickly.
We’ve added support in the style-spec for font-faces
for files and urls which is a huge step forward in order to support eastern scripts and other fonts without the need to pre-process them to glyphs.
The discussion around it was very good with a lot of valuable inputs. Thanks to everyone that participated!
Martin v0.18 has been released, featuring the new web UI frontend with the basic metrics, tile inspection, view styles with Mapunik as an add-on, and view sprites and fonts.
MapLibre Native has continued to progress steadily over the past month, with notable improvements especially for integrating into Rust projects:
We also have a new social image for this project:
Social image for maplibre-native-rs, Rust native backend of MapLibre.
The OpenStreetMap homepage recently introduced two new featured map layer options powered by MapLibre GL JS via maplibre-gl-leaflet
. There are also ongoing discussions about whether switching from maplibre-gl-leaflet
to a more “unwrapped” implementation using maplibre-gl-js directly might offer additional benefits.
Over the past two months, we participated in several key events:
We’re grateful to everyone who joined us and we look forward to upcoming events including FOSS4G Oceania in Auckland and FOSS4G North America in Washington, DC.
We continue our regular community calls on the second Wednesday of each month, with an additional session on the last Wednesday to better accommodate Asia/Oceania time zones.
Upcoming Calls
🌏 MapLibre Eastern Call
Held on the last Wednesday of the month at an Asia/Oceania-friendly hour:
🔗 View meeting times in your local timezone.
All calls are open to everyone. Zoom links are shared in the MapLibre Slack. Not yet a member? Request an invite via the OpenStreetMap US Slack. We’d love to see you there!