Jan 3, 2026
As we close out 2025, the MapLibre ecosystem continues to move forward across platforms, tooling, and the broader open-source mapping community. While December is traditionally a quieter month, there’s still plenty to share about performance improvements and new capabilities in MapLibre Native, GL JS, and other community-led initiatives.
None of this work would be possible without the continued support of our sponsors, whose contributions help keep MapLibre sustainable and moving forward. Thank you for supporting and here’s wishing our community a Mappy New Year 🗺️🎉.
Faster, Synchronous GeoJSON updates: The latest releases for MapLibre iOS and Android allow adding GeoJSON sources which use synchronous updates. This is especially useful for time-sensitive GeoJSON layers such as the location puck (the internal location indicator layer on Android has been updated to use a synchronous GeoJSON layer). Please try it out and share your experiences. Thanks Alex Cristici for implementing this functionality.
Terrain 3D support: Jesse Crocker and Nathan Olson are cooking up a Terrain 3D implementation for MapLibre Native. Check out the work in progress here and here.
Enhanced Hillshade & Color-Relief Layers: Andrew Calcutt is working on a PR to update Hillshade Algorithms and add Color-Relief Layer support. Please have a look, try it out if you can and give his PR a +1!
Android Transform Updates: We are still gathering feedback on an Android pre-release that enables icon scaling with offsets and makes changes to the transform implementation to allow for concurrent animations. If you’re affected by these changes, please try it and help ensure there are no regressions in your app.
Releases this month:

MapLibre Native with Mapterhorn terrain tiles
(attribution) with basic as
hillshade-method.
Version 5.14.0 and 5.15.0 are now available! These releases include several bug fixes related to terrain, canvas source, abort errors, GeoJSON handling and general packaging improvements.
Another notable addition is support for global-state in expression visibility.
Many thanks to all the contributors in these releases: Lucas Wojciechowski, David E Disch, Ryan, Mary, Andrew Dassonville, Omkarthipparthi, Lars Maxfield
GeoJSON Improvements
Additionally, geojson-vt has been onboarded to the MapLibre GitHub organisation to support incremental tile updates for GeoJSON. We are also researching solutions to some long-standing issues in GeoJSON usage, such as handling nested and undefined properties.
MLT TypeScript
There’s an open PR to support decoding of FastPFor, which is the final missing piece for version 1.0 of the tile specification. In parallel, ongoing work is focused on performance optimizations, along with a strong emphasis on unit tests to ensure the codebase is well covered.
NPM & Tooling
We’ve moved all our packages to trusted publishing and aligned the CI workflows to make the changelog and release process consistent across most packages.
Development slowed down a bit over the past month due to the holiday season, but we still managed to ship a handful of useful improvements in the 1.1.0 and 1.2.0 releases.
Highlights include better support for automation, more flexible error handling, and a few targeted fixes and performance tweaks:
mbtiles summary command now supports --format [json | json-pretty | text], making it easier to integrate with scripts and other automated tooling (by Yuri Astrakhan).on_invalid: warn option allows invalid sources to emit warnings instead of aborting execution, giving users more control over failure behavior (by Gabe Schine).auto_publish: false would incorrectly warn about all tables and functions; warnings are now limited to explicitly configured sources (by Brian Todt).martin-cp now infers default bounds from configured sources, improving performance when copying from sparse source sets (by Brian Todt).az:// URL schemes, enabling Azure Blob Storage–based workflows (by Frank Elsinga).Even with a quieter month, these changes help smooth out common workflows and make Martin easier to integrate into larger systems.

Screenshot from Martin demo site.
It’s been a few months since our last update, but the SwiftUI DSL continues to add new features and receive updates to keep pace with the latest MapLibre Native releases as well as updates from Apple.
Some highlights include:
Looking back on the year, we’ve picked up quite a few new contributors! While we don’t yet know how this correlates to usage, it’s reasonable to call it a success. Looking forward to 2026, our process for exposing API bindings appears to be working well, so it’s time to consider an automated approach to fill in the rest of the missing bindings. Expect an update in future newsletters, or join us in the #maplibre-swiftui channel on Slack.
Since the last update in the September newsletter, we’ve continued to focus on good stability and cross-platform experience for developers. Version 0.3.1 and 0.3.2 have been released, bringing several notable improvements:
Another exciting release, version 0.3.3, is coming soon. A big thanks to everyone involved in the progress and development throughout 2025!
Diplomat Plugin
The OpenStreetMap Americana team has released Diplomat, a new MapLibre GL JS plugin for converting labels into different languages. Diplomat supports dual language labels and all major tile schemas.

Before: single-language labeling

After: dual-language labels with Diplomat
Map data ©OpenStreetMap contributors. Tiles by OpenMapTiles.
OpenStreetMap Website Migration
There has also been steady progress on migrating the OpenStreetMap website to MapLibre. So far, the dashboard landing page has been migrated, while many other pages are still pending.
If you’re interested in contributing to this effort, here’s the issue outlining the overall plan and remaining work.
We plan to participate and contribute to sessions/workshops in the following events this month.
FOSS4G Asia Talks to watch out for:
All times are in Indian Standard Time (IST, UTC +5:30).
| Talk/Workshop | Date | Time | Duration | Location | Presenter |
|---|---|---|---|---|---|
Tile serving with MapLibre / Martin / Planetiler: base and overlays | Jan 21 | 14:30–16:30 | 2h | Room 1 | Frank Elsinga |
High-performance & large-scale geospatial visualisation using MapLibre and Deck.GL (with React) | Jan 22 | 09:00–11:00 | 2h | Room 1 | Srijit S. Madhavan |
State of the MapLibre Tile Format | Jan 23 | 15:00–15:30 | 30 min | Room 2 | Frank Elsinga |
Next Generation Tile Server Performance Now | Jan 24 | 11:00–11:40 | 40 min | Room 1 | Frank Elsinga |
Faster Maps, Smaller MapLibre Vector Tiles, and What’s Next | Jan 24 | 11:45–12:15 | 30 min | Room 1 | Frank Elsinga |
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!