MapLibre Newsletter December 2025

Jan 3, 2026

Categories: Newsletter
Authors: Bart Louwers Frank Elsinga Harel Mazor Ian Wagner Joscha Eckert Ramya Ragupathy

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 🗺️🎉.

📱 MapLibre Native

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:

Mapterhorn

MapLibre Native with Mapterhorn terrain tiles (attribution) with basic as hillshade-method.

🌐 MapLibre GL JS

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.

🧩 Martin

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:

  • The mbtiles summary command now supports --format [json | json-pretty | text], making it easier to integrate with scripts and other automated tooling (by Yuri Astrakhan).
  • A new on_invalid: warn option allows invalid sources to emit warnings instead of aborting execution, giving users more control over failure behavior (by Gabe Schine).
  • Fixed an issue where PostgreSQL sources with 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).
  • Discovery now supports 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.

Martin Demo

Screenshot from Martin demo site.

✨ MapLibre SwiftUI DSL

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:

  • Support for the latest SwiftSyntax versions and iOS 26
  • A half dozen or so new style property bindings
  • Moving more properties to be controlled via the environment, which should help clean up a lot of code going forward!

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.

🪶 MapLibre Flutter

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:

  • Moving to 100% ffi interop on Android. We are looking forward to achieving the same on iOS soon.
  • Support for creating map markers from Material, Cupertino or any other Flutter IconData. These icons can be displayed on the map without any delay between Flutter and the MapLibre map. For the future, support for rendering complete widgets as map markers is planned.

Another exciting release, version 0.3.3, is coming soon. A big thanks to everyone involved in the progress and development throughout 2025!

🌍 Ecosystem Spotlight

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 labels

Before: single-language labeling

After: dual-language labels with Diplomat

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.

👥 Conferences

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/WorkshopDateTimeDurationLocationPresenter

Tile serving with MapLibre / Martin / Planetiler: base and overlays

Jan 2114:30–16:302hRoom 1Frank Elsinga

High-performance & large-scale geospatial visualisation using MapLibre and Deck.GL (with React)

Jan 2209:00–11:002hRoom 1Srijit S. Madhavan

State of the MapLibre Tile Format

Jan 2315:00–15:3030 minRoom 2Frank Elsinga

Next Generation Tile Server Performance Now

Jan 2411:00–11:4040 minRoom 1Frank Elsinga

Faster Maps, Smaller MapLibre Vector Tiles, and What’s Next

Jan 2411:45–12:1530 minRoom 1Frank Elsinga

🗓️ Monthly meetings

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 Navigation: Jan 14, 2026 – 5:00–6:00 PM UTC
  • MapLibre Native: Jan 14, 2026 – 6:00–7:00 PM UTC
  • MapLibre GL JS: Jan 14, 2026 – 7:00–8:00 PM UTC

🌏 MapLibre Eastern Call

Held on the last Wednesday of the month at an Asia/Oceania-friendly hour:

  • Jan 28, 2026 – 9:00–10:00 AM UTC

🔗 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!