Mar 3, 2026
Welcome to the February 2026 edition of MapLibre Newsletter! It’s been an active month with exciting updates, from shifting rendering backends to launching a collection of agent skills to perform MapLibre related tasks.
A special thanks to MapTiler for their continued support. We updated our Sponsors page this month, to make clearer how organizations and individuals can give. If you have been thinking about contributing, there has never been a better time.
Our gratitude goes to MapTiler for their continued support to MapLibre.
With that note, let’s dive into the latest updates across the MapLibre ecosystem!
Core library: Distance-Based Level-of-Detail (LOD)
Nathan Olson implemented a distance-based level-of-detail algorithm into the core library. However, platform APIs for this functionality still need to be added.
Experimental WebGPU Backends for Mobile
Birk Skyum implemented a WebGPU backend for Android and for iOS. At this point the motivation behind this is more or less “because we can”, but it might offer opportunities to share custom shaders between platforms in the future.
New Hillshading Algorithms Merged
Andrew Calcutt’s PR that implements additional hillshade algorithms has been merged! These algorithms are included in the current pre-release for Node.js, and the next releases for MapLibre iOS and MapLibre Android.
Android: Transitioning to Vulkan by Default
We released MapLibre Android 13.0.0 which now uses Vulkan as a default rendering backend. This means that the org.maplibre.gl:android-sdk package is now using Vulkan. You can use the org.maplibre.gl:android-sdk-opengl package if you prefer to stick to OpenGL ES for now.
New Releases: Versions 5.18 and 5.19
We’ve released versions 5.18 and 5.19 this month. A major highlight is the migration of our documentation to Zensical, the next-generation replacement of Material for MkDocs, which has served us very well until now. We also added anisotropicFilterPitch to support some interesting data analysis use cases.
We would like to thank all the contributors this month for these versions - truly inspiring work!
🙏 n4n5, Lars Maxfield, pcardinal, Simon, Birk Skyum, Harel Mazor, Ganesh Lokhande, Ryan, Frank Elsinga, Kai Gritun, Stanislaw Puda, Lucas Wojciechowski, Russell Porter
The Road to Version 6
The following PR, which will pave the way for our next major release is now ready to be merged:
👉 https://github.com/maplibre/maplibre-gl-js/pull/6992
We expect to release a first pre-release for version 6 in March. While we haven’t made a major (breaking) release in over a year now to keep things as maintainable as possible, it is now time to move forward with changes we’ve previously deferred.
The primary change in version 6 regarding developer experience will be the transition to ESM. As the industry moves toward ESM and our current build process is becoming increasingly complex, we are considering not releasing a CommonJS version. This transition will allow us to leverage newer technologies like Rolldown.
We would love to hear your thoughts on these expected breaking changes to ensure we don’t disrupt your workflow. Please join the discussion in the relevant tracking issue and share your feedback.
Versions 0.3.4 and 0.3.4+1 of maplibre have been released this month, bringing significant architectural improvements and expanded platform support.
iOS transition to FFI
A major milestone in this release is the complete transition of the iOS implementation to use FFI, removing all remaining usages of method channel serialization. This simplifies the integration between Flutter and the native SDK while providing minor performance gains.
Federated plugin architecture
As part of an ongoing committment to code quality, the plugin has been reorganized into a fully federated plugin architecture, separating each platform implementation into a dedicated packages. This restructuring improves long-term maintainability and allows each platform to evolve independently. These changes happened under the hood and require no migration from users.
Experimental desktop support
Experimental support for Windows and macOS has been introduced via a WebView–based implementation that uses MapLibre GL JS. This is a simple solution to bring performant vector map rendering to these desktop platforms while broader native support continues to mature.

MapLibre GL JS map rendering within a Flutter App on Windows.
Documentation and Future Roadmap
The documentation website has been migrated to Zensical alongside the broader MapLibre migration. Check it out and let us know what you think.
Looking ahead, work is progressing on typed style layer properties and expressions, a highly anticipated feature. We are currently targeting static typing for style expressions, paint/layout properties, and new style layer inspection capabilities for the upcoming v0.4.0 release.
In an effort to move with the times and inform the LLMs of all the great things you can build with MapLibre, we’ve launched maplibre-agent-skills, a library of structured knowledge files that help AI coding assistants (Claude Code, Cursor, GitHub Copilot) write better MapLibre applications.
Rather than putting up with bad or wrong MapLibre integrations, we’re directly informing the AI agents so they in turn share good information and the right recommendations on when it makes sense to use MapLibre, how to deal with tile sources and other renderer resources, and how to follow open-ecosystem patterns.
Skills available now:
maplibre-tile-sources — choosing hosted vs. self-hosted tiles, OpenFreeMap, PMTiles, glyphs, CORSmaplibre-pmtiles-patterns — serverless tile hosting on S3, R2, and static hostsmaplibre-mapbox-migration — migrating from Mapbox GL JS to MapLibre GL JSVisit maplibre-agent-skills for more details on how to use or install these, or review the open issues for what’s next.
We’re looking for contributors. Skills are plain markdown files, easy to read, review. We welcome your expansions, corrections and questions. If you’ve tackled geocoding, routing, styling, framework integration (React, Vue, Angular, Flutter, Swift), or performance — your experience can make a big impact.
See contributing guidelines for how to write a skill, or open an issue to propose a new one we haven’t thought of yet.
The MapLibre Style Spec continues to evolve to support more complex styling needs:
split and join, which allow better string manipulation, are now part of the spec and are expected to be incorporated in MapLibre GL JS soon.resampling was also added to support other layers besides raster.symbol-elevation will probably land soon to allow better support for placing symbols in a 3D map, check it out here:
https://github.com/maplibre/maplibre-style-spec/pull/1508In February our focus has been on text rendering, with the following enhancements merged in:

Demonstration of the new SDF-based text rendering in maplibre-rs.
There is a growing interest in the new format. Our current priorities are:
📣 Call for Volunteers: MLT Logo
The MLT project is looking for a volunteer to design our official logo. This is a great opportunity to contribute to the project and leave a lasting mark on the MapLibre ecosystem. Please join the discussion to provide your inputs or share your submissions!
We’ve made great progress on the tooling side, including a Rust-based TUI and a dedicated QGIS plugin 🎉 Stay tuned for more updates!

MLT TUI: Direct feature inspection within the terminal.

MLT Data integration progress within the QGIS ecosystem.
While it has been a relatively quiet month as we focus on MLT development, we’ve still shipped several key improvements to the tile server:
Web UI Fixes: The path-prefix now works correctly within the Web UI.
Smarter Routing: Common URL mistakes (e.g., using /source.mvt instead of /source) now return a 301 redirect instead of a 404, including periodic log hints to help fix configurations.
COG Stability: The experimental Cloud Optimized GeoTIFF (COG) backend was tightened significantly (thanks to David E Disch, PR #2510). To ensure stability, COGs must now be fully WebMercator-compatible (EPSG:3857), tiled, and consistently sized. Some previously ambiguous COGs may no longer load as we move toward a more predictable, production-ready implementation.
Manbhav Sugla also migrated our documentation to Zensical, which looks much more modern than what we had before.
Yossef from our community has build QGIS2VectorTiles which streamlines the process of packing a QGIS project into a styled vector tile package ready for MapLibre. It allows users to design maps within the familiar and flexible QGIS Desktop and export stunning MapLibre client-side web maps leveraging GDAL’s MVT driver.
The exported output package includes:
XYZ directory.qlr file.json stylesheet.png and .json files.html fileThis package is ideal for:
A short demo is attached:

Exporting styled vector tiles directly from QGIS.
More information is available on the plugin homepage.
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!