finds.dev← search

// the find

originalankur/maptoposter

★ 13,713 · Python · MIT · updated Mar 2026

Transform your favorite cities into beautiful, minimalist designs. MapToPoster lets you create and export visually striking map posters with code.

A CLI tool that pulls street network data from OpenStreetMap via osmnx and renders it as a print-quality map poster using matplotlib. Point it at a city, pick a theme, get a PNG. Aimed at developers who want wall art without paying a print shop or a SaaS.

The theme system is genuinely well-designed — JSON files with named color slots mean anyone can add a new aesthetic in five minutes without touching Python. Multilingual support via on-demand Google Fonts download is a nice touch that most similar tools skip entirely. The coordinate override flag is useful for cities where Nominatim geocodes to the wrong center (suburbs, administrative boundaries). Using uv with a lockfile keeps the osmnx/matplotlib dependency tree reproducible, which matters because osmnx breaks on minor version bumps.

The whole project is a single 600-line script with no tests beyond a shell script that just runs all themes — there's no assertion that the output looks correct, only that it doesn't crash. Nominatim is rate-limited to one request per second and has no caching, so running --all-themes for a new city hits the geocoder 17 times for the same coordinates. The distance parameter controls both the OSM data fetch radius and the visual crop, which means zooming in on a dense area (say, Venice at 2000m) re-downloads the full street graph anyway — there's no tile caching. Finally, the 'no web UI, no Docker' contributor policy is reasonable but the README doesn't explain where the project is going, so it's unclear if this stays a weekend CLI tool or is heading somewhere.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →