May 2025

The first alpha release of the forthcoming major version of LeafletJS is out.

This release marks a major modernization of the Leaflet codebase. We’ve dropped support for Internet Explorer, removed legacy methods and polyfills, adopted modern standards like Pointer Events, and now publish Leaflet as an ESM module. The global L is no longer part of the core package (though it’s still available in the bundled version leaflet-global.js for backward compatibility).

While the release doesn’t include any significant new features (not that there’s anything wrong with that), some breaking changes will be relevant to the majority of Leaflet developers:

  • The removal of factory methods; instead of L.Map("map"), you will directly import and instantiate the Map class with new Map("map").
  • Mouse and touch events have been replaced with Pointer events, making it easier to build web maps for devices with varying input methods.
  • Leaflet is now published as an ESM module, you can now import Leaflet components with import { Map } from "leaflet";.

There’s no timeline for the final release yet. Currently, the version milestone only has one open ticket, so this is a good time to upgrade your apps and plugins. There is the Leaflet V1 Polyfill for those who want to upgrade to Leaflet 2 but don’t want to fix breaking changes in their applications.

places.pub is an early-stage, experimental API that provides place objects compatible with ActivityPub protocols to enrich posts with location information or announce geosocial activities such as “arrived” (in other words, checking in), leaving, or travelling between places.

Evan Prodromou, who built the API:

One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

The API serves two functions: it enables social-networking applications to find locations and access places via unique URLs. It’s a surprisingly small application that runs on OpenStreetMap data hosted on Google Cloud Public Datasets.

Again, Evan Prodromou:

Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function.

So, who’s going to build an ActivityPub-compatible Swarm clone?