MapLibre Newsletter October 2026

Nov 3, 2026

Categories: Newsletter
Authors: Bart Louwers Harel Mazor Ramya Ragupathy Stephanie May

Welcome to the October 2026 edition of the MapLibre newsletter!

It was a busy month across the ecosystem: the Plugin API landed in stable MapLibre Native releases, MapLibre Native FFI bindings are now published across all major package registries, MapLibre GL JS shipped its most requested feature, experimental custom Coordinate Reference System. Plus, the Style Spec approved new additions, MapLibre Flutter was presented at FlutterCon Berlin, and MapLibre Agent Skills v0.3.0 is out.

A special thanks to our sponsor, Microsoft, for their continued support.

MapLibre logo Microsoft logo

Our thanks to Microsoft for their renewed sponsorship and steadfast support since 2024.

📱 MapLibre Native

  • We now have stable releases that include the Plugin API announced last month. For iOS, we distribute it via Swift Package Manager using a new distribution repository. For MapLibre Android we also released separate plugin-enabled builds (see the Artifacts overview in the docs).
  • MapLibre iOS 7.0.0 was released. We bumped the minimum iOS version to 15.5. One exciting feature is support for global-state expressions. Perhaps less exciting, but very helpful when you need to symbolicate a crash: debug symbols are now included in the XCFramework.
  • Pre-releases for MapLibre iOS and MapLibre Android that support globe projection were released last month. Please report any issues in #4533.
  • Some large strides by Nikko Vellios, Patrik Drhlik, Andrew Calcutt and others have been made on the feature/terrain3d branch last month. Stay tuned for pre-releases!

🌐 MapLibre GL JS

We released versions v6.12.0, v6.13.0, v6.14.0, v6.15.0 and v6.16.0 this month.

🌍 v6.15 ships the project’s most requested feature: experimental support for custom Coordinate Reference System(CRS).

National grid maps, polar maps and all sorts of world projections are now supported. You can pass in your own projection logic, so it’s very flexible.

Explore it in the showcase, and let us know what you think in the Slack announcement. Big thanks to John Carmack and Birk Skyum for getting this over the finish line!

Grid of maps rendered with custom CRS: national grids such as Australia, France and Great Britain, world projections such as Equal Earth and Mollweide, and polar views of the Arctic and Antarctica

Custom CRS showcase: national grids, world projections and polar maps

We also added experimental terrain support for custom layers, which improves the deck.gl integration.

These versions also ship lots of bug fixes and performance improvements, so make sure to upgrade to the latest version.

Thanks to everyone who contributed this month!

🔗 MapLibre Native FFI

MapLibre Native FFI has hit a major milestone; all of its language bindings are now published to their package registries. Kotlin Multiplatform bindings were already on Maven Central, and the C library on GitHub Releases, and now we’ve also got:

  • Dart releases on pub.dev
  • C# releases on NuGet
  • Go releases on pkg.go.dev
  • Python releases on PyPI
  • Rust releases on crates.io
  • Swift releases on SPI
  • TypeScript releases on NPM and OHPM for the browser, Node, Bun, Deno, Hermes, and ArkTS

Sargun Vohra also completed internal rework so the library now manages threads that were previously left to the host integration. That change is what made the Flutter integration described in the next section of the newsletter possible. Each language binding is now generated automatically from the C header, which makes it easier to iterate on the API and to maintain or add language bindings.

🪶 MapLibre Flutter

flutter-maplibre

Versions 0.3.7 and 0.3.7+1 for flutter-maplibre were released this month. These are maintenance releases with updated dependencies and a couple of bug fixes.

Work is ongoing for the upcoming 0.4.0 release. The package has been migrated to unified C bindings using maplibre-native-ffi, which removed about 160,000 lines of code. Most of that was generated code but it still shows how much complexity the platform-specific SDK bindings added. The upcoming release also delivers the most upvoted feature request on the issue tracker: better type safety in the API with statically typed layer properties and statically typed expressions. The prerelease is available on pub.dev now: v0.4.0-pre.1.

Feedback is very welcome! Share it on GitHub or in the #maplibre-flutter Slack channel.

flutter-maplibre-gl

FlutterCon Berlin

On 9 October, MapLibre Flutter was presented at FlutterCon at next.app devCon in Berlin, in the talk Chasing Behavioral Parity by Gabriel Palmisano. The slides themselves ran on Flutter, next to a live globe drawn by the plugin. After the talk, many community members joined discussions about the future of the package. Thank you to everyone who stopped by with questions, use cases and ideas.

On stage at FlutterCon Berlin under the Chasing Behavioral Parity title slide Asking the room who knows MapLibre Flutter, next to a live MapLibre globe The about-me slide: a MapLibre map flying from Bari to Pesaro to Berlin

Chasing Behavioral Parity at FlutterCon Berlin, 9 October 2026

🎉 flutter-maplibre-gl 0.28.0 is coming!

The next release closes more than 50 issues since 0.27.0, with one theme: the same call gives the same result on every platform.

  • Typed native bridge: Pigeon-generated messages replace hand-written method channels on Android and iOS, laying the groundwork for an FFI backend.
  • Consistent error handling and gestures: shared error codes across platforms, and feature taps, drags and camera events behave the same everywhere.
  • New APIs: moveLayer, setLayerZoomRange, setLayersVisibility, panInertia, image sources on Web, F-Droid-friendly Android builds and more.
  • Updated engines: MapLibre Native Android 13.7.1, iOS 6.31.0, GL JS 6.14.0.

Most apps upgrade without code changes. See the migration guide and docs for the exceptions. maplibre_gl also passed 150,000 monthly downloads, nearly double August’s figure.

🤖 MapLibre Agent Skills

MapLibre Agent Skills drops the latest eval-tested MapLibre guidance into agent-assisted coding environments including Cursor, Copilot, Codex and Claude Code so they stop guessing and are kept current beyond their training data.

v0.3.0 shipped on 26 October with 11 skills, covering cartography, fonts and glyphs, sprites and icons, terrain, tile sources, PMTiles, source wiring, and Mapbox and v6 migration. It also adds a Claude Code plugin marketplace:

/plugin install maplibre-agent-skills --marketplace maplibre/maplibre-agent-skills

It’s been a big quarter. Stephanie May overhauled the repo’s skill structure and eval process and gave a well-received talk at FOSS4G 2026 in Hiroshima. John Carmack hardened the CI and automation and fixed countless small issues along the way.

Stephanie May presenting at FOSS4G 2026 in Hiroshima Slide introducing MapLibre Agent Skills from the FOSS4G 2026 talk

Stephanie May presenting MapLibre Agent Skills at FOSS4G 2026, Hiroshima

Evals and Automation

  • Drift checks. A scheduled workflow re-grades the skills, commits dated results, and syncs each skill’s verified / provisional status from the outcome. Since mid-September it has run nearly every week.
  • Release watch. A weekly job now files an issue when a new MapLibre release removes, renames or deprecates something a skill still mentions.
  • Release automation. The Changelog is automated from a field in the PR template, and the Release workflow regenerates the table of available skills and their eval status each time a release is cut.
  • AI failure reporting. Issue and PR templates for AI-failure reports.
  • Spec compliance. validate:skills checks front matter against the Agent Skills spec.

What’s next

A Native/GL JS parity skill is the next candidate. If you maintain a repo in the MapLibre ecosystem, reach out about guiding coding agents on your contribution practices. We’d love for you to try the skills!

🎨 Style Spec

This month we approved:

We also included the TileJSON additions to the docs, clearly marking which parts come from TileJSON 3.0 and which are MapLibre extensions.

📝 The MapLibre Style Spec is evolving! Join the discussion on shadows, rooftops and immersive 3D, all features we are considering adding to the style spec.

We start with spec changes before implementation so that we can take as much input as possible into account. The best way to move a spec proposal forward is to present it at one of the monthly meetings, so we can shape it together.

🗓️ 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 Native: Nov 11, 2026 – 7:00–8:00 PM Berlin Time (UTC+1)
  • MapLibre GL JS: Nov 11, 2026 – 8:00–9:00 PM Berlin Time (UTC+1)

🌏 MapLibre Eastern Call

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

  • Nov 25, 2026 – 9:00–10:00 AM UTC

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!