Aug 2, 2026
Welcome to the July 2026 edition of the MapLibre Newsletter!
It’s been a big month. MapLibre GL JS v6 just shipped, barely eight months after v5 landed in December 2025. Additionally, MapLibre Native landed its first-ever style spec property before GL JS, Martin pushed out three releases in a row, and Flutter got an experimental FFI engine that’s 10x faster on data-heavy maps.
Before we dive in, we begin with a note of gratitude to JawgMaps, for their continuous backing of MapLibre since 2023. Contributions like theirs, from organizations and individuals alike, are what keep our project running and our community thriving. If you’d like to support our ongoing work, visit the MapLibre Sponsors page for more details.
Big thanks to JawgMaps, for supporting us since 2023!
Board Change: Frank Elsinga has stepped down from the Governing Board. Per the MapLibre Charter, his seat is filled by Stefan Karschti, who placed sixth in last year’s allocation. Thank you, Frank, for your service this term!
2026 Elections: Nominations are open for this year’s Governing Board election.
Date | Milestone |
|---|---|
Aug 14, 2026 | Deadline for Voting Member nominations and Board candidate registration |
Aug 20, 2026 | Deadline for approval of new Voting Members (via PR review) |
| Aug 31, 2026 | Governing Board election poll closes (OpaVote) |
Rounded Fill Extrusion Corners: Support for rounded fill extrusion corners has been implemented by Alex Cristici in #4343. You can now use the fill-extrusion-rounded-corner-distance style spec property. Notably this is the very first time a new visual style spec property has landed in MapLibre Native before MapLibre GL JS since the fork! Special thanks to Steve Gifford for the original proposal.

Screenshot showing the new rounded corners for fill extrusions in action.
OpenMapTiles based map style.
Crisper CJK Text Rendering: CJK characters that use local glyph rasterization are now rendered with double the resolution, matching MapLibre GL JS and significantly improving the legibility of these characters. This was implemented by Taku Fukada, an engineer at our valued sponsor MIERUNE.
Android feature-state support: The feature-state functionality is a way to read and set properties on individual features, which can be used for styling with a style expression. Android support was added in #4219 by Brandon Roeder. A PR from Markus Wendorf that adds a similar API to MapLibre iOS is still open.
Fresh PMTiles Documentation: Stephanie May contributed fresh new PMTiles documentation in #4278. Check out the new guides in both the MapLibre Android and MapLibre iOS docs.
We published the final four pre-releases(6.0.0-19, 6.0.0-20, 6.0.0-21, and 6.0.0-22) of Version 6 alongside the official v6.0.0 release itself. This is a huge milestone for us! While it introduces breaking changes, it also paves the way for future improvements. For more details, check out our migration guide.
It has been over a year and a half since our last major update, and breaking changes were piling up. So we needed to carve out a dedicated breaking release, but don’t worry, we don’t plan on doing another one anytime soon (we know how painful migrations can be!).
We noticed this release created complication for projects pinned to latest. We strongly advise against auto-updating to latest versions in production for this exact reason. Always pinning to specific versions will keep your builds safe and predictable.
We had a stack of non-breaking features and bug fixes ready to go that we didn’t want to mix into the core 6.0.0 release. To keep things clean, we also shipped v6.1.0 this month.
While the momentum around AI tools makes drafting code faster than ever, we kindly ask contributors to focus on driving a single PR to completion before opening new ones. We take quality and maintainability very seriously. Aligning code to MapLibre standards, conducting thorough reviews, and making necessary adjustments takes time. Focusing on one high-quality pull request at a time helps us review faster and get your contributions to a “ready to merge” state smoothly.
🙏 Thanks to all the contributors this month:
Over the last two months, Martin shipped three major releases (v1.11.0, v1.12.0, and v1.13.0). Key highlights include:
.geojson/.json files on the fly. It constructs a Hilbert R-Tree index on startup, then queries, clips, and encodes MVTs per request. It also supports filesystem-event hot-reloading.🙏 Thanks to all the contributors who made these releases possible:
MapLibre Compose now features an experimental desktop implementation rewrite backed by maplibre-native-ffi on the desktop-ffi-rewrite branch. This has allowed us to:
This new architecture is expected to resolve a large collection of longstanding open issues, including #570, #627, #595, #184, #568, #608
This month flutter-maplibre-gl grew an experimental new engine: a pure-Dart FFI backend for Android, on the exp/native-ffi-android branch.
By driving the map directly through the MapLibre Native C API with dart:ffi, we can now achieve:

Screenshot of interaction performance benchmark: FFI backend vs. Platform
Channels.
The public maplibre_gl API is unchanged: a single MapLibreGlNative.use() call before runApp opts an app in. This is an experimental spike (Android arm64 only). Threading lessons learned here are directly shaping maplibre-native-ffi’s executor design #433. Thanks to @sargunv for the C API collaboration!
Keep an eye on our blog for an upcoming post covering MapLibre’s schedule and participation at upcoming geo conferences.
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:
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 and join the #maplibre channel.
We’d love to see you there!