Announcing Street Spirit: A new OpenStreetMap-based general-purpose client-side rendered style

I have been developing Street Spirit, a new style using OpenStreetMap data. It uses Maplibre GL for client side rendering of MVTs generated by Tilekiln, which supports minutely updates using the standard osm2pgsql toolchain.

To focus style development, I have set its aims as being suitable for

  • use as a locator map,
  • to show off what can be done with OpenStreetMap data,
  • to be up-to-date with the latest OpenStreetMap data, and
  • using to orient a viewer to a location they are at.

Although not complete - if a style can ever said to be complete - it is at the point where there’s enough features to give the overall feel of the map, at least for zooms 12 and higher. Lower zooms are missing many features still, particularly roads and rail and some landcover and other fills.

Because the style has a more clearly defined purpose, I’ve been able to use more of the colour pallet than many other styles, particularly compared to styles designed for overlaying other data on top of.

I’ve set up a dev instance on one of my servers, using OSM data from 2023-02-27. Have an explore around.

Some of the bigger areas that need work are

  • Missing mid- and low-zoom features
  • Missing fills
  • A consistent set of POI icons
  • More POIs

If you’re interested in contributing to the work, let me know. Contributing will require some technical knowledge in the following areas

  • MapLibre GL style specification, focusing on layers and expressions, including data-driven expressions;
  • YAML, in particular appropriate indentation for arrays. MapLibre GL styles tend to feature deeply nested arrays; and
  • SQL for writing read-only PostGIS queries if modifying vector tiles.


Nice work so far, Paul. I like the rather bold use of color, and it looks like you’ve still got more room on the palette to stretch a bit further. Rather pretty in a sense of “urban locator” and rather practical in a sense of “what’s around me now?” Yes, it looks a little “early” but that’s fine, I have a feeling you’ll grow this more as you get more feedback, and directions I see it going in are making me nod my head.

I’m not quite sure why some admin_level boundaries display with missing segments, but I suppose you’ll figure that out. Very noticeable is how careful you are at choosing which data to display at each particular zoom level (especially around z=12 to about z=15): this level of real care is apparent and it makes the zooming-in experience surprisingly pleasant.

Enthusiasm and encouragement from here. Keep it up!

1 Like

Are you are interested in suggestion/feedback/complaints not accompanied with PRs?

1 Like

Within reason, for the higher zooms. There are whole classes of features I want to include (e.g. shops), so at this point I wouldn’t want individual tickets for every single type of shop.


Looks like a great start. The colour scheme makes it strongly road focussed like motorists maps.

It looks like you might be missing a highway class here:

highway=busway from the looks of it.


I’ve added an issue for various transit lines, which will cover busways. I could use more ideas for busway cartography, since few maps choose to render them right now.

1 Like

Good first impressions from me - the demo was nice and smooth and it looks very nice. It’s great to see some more vector maps.

Of course, some features such as paths are underdeveloped on the map, but I’m sure that this can improve in time.

I like how this style renders maritime borders (hidden if there is not a country attached to both sides, unless there is a border dispute).

I think the road route shields from OSM Americana could look great with this saturated colour scheme.

The most popular map styles (excepting Carto) render them now (for quite a while). Have a look (‘ZoRo’ is the busway):


Organic Maps is a lot more minimal (everywhere, not just for highway=busway:

And of course, Carto pull request 4456:

(Don’t mind the unpaved surface there, that was just test data on my part. In reality that busway is paved of course.)

1 Like