Transitioning Protomaps from Open Core to Open Source
The Protomaps Project has gained several new repositories in the past year, including the serverless implementations for AWS and Cloudflare, and a new basemaps repository, which generates a full planet PMTiles archive from OpenStreetMap. A free daily build of the planet output is available on maps.protomaps.com/builds.
These additional components complete the transition from an open core project into an open source one, distributed under a standard BSD License.
What is Open Core?
There’s a paradox at the heart of open source development:
- The best FOSS projects have maintainers working on them full-time as their job.
- Giving away software for free is a very bad way to make a living.
At one extreme, FOSS developers are employed directly by large corporations with an unrelated business model. The open source project is a necessary, but not sufficient, part of the company’s overall product. That’s why Vercel develops Next.JS, and Facebook funds development of ZStandard. These are success stories where developers are paid to work on FOSS. But continued investment in the project is at the whims of the patron companies. It’s a fit for mature infrastructure projects, but not early-stage ones that attempt to change some status quo.
At the other extreme are early-stage companies and bootstrapped developers. A strategy for funding FOSS development, especially in the developer tools space, is open core - use a fully open source project to attract adoption, which funnels into sales of a premium, proprietary product.
- Tailwind UI is a proprietary bundle of templates by the creators of Tailwind CSS.
- Sidekiq Pro is a a flat-fee, enhanced version of the Sidekiq Ruby job queue.
FOSS vs. SaaS
Another strategy is to run a paid, hosted version of a fully open source project. This is the approach used by Zulip, Supabase and Tailscale. SaaS is, bar none, the best business model for monetizing software, for a few key reasons:
- Adoption: Onboarding is instant with no installation, and software can be updated behind-the-scenes.
- Digital Rights Management (DRM): Access can be terminated if users don’t pay.
- Price Discrimination: Products are segmented into tiers so companies with higher willingness to pay, pay more.
As I described in Rethinking the Free Tier for Maps, SaaS as a path to financial sustainablity is not a good fit for the Protomaps project, because unlike a database-backed web service, the fundamental design of Protomaps makes it as easy to deploy as possible - a single file on cloud storage. Acquiring the high-ticket customers necessary to build a SaaS business demands convincing businesses that operating Protomaps is difficult. It simply isn’t, and I give you all the tools to do it in 20 minutes.
The Open Core Experiment
Protomaps is not “VCware”. It’s the result of 4 years of bootstrapped, full-time independent developer work, and ensuring its continued development for another 4 years and more cannot be achieved by burning investor money. It must experiment with a balance between user-supported commercialization and its open source ecosystem.
The core of Protomaps is the PMTiles format and ecosystem, which is an open spec in the public domain. Dozens of map apps use the format to serve their own datasets, like the Washington Post and the National Zoning Atlas.
The basemap, or background underlay map, is a necessary complement to your own data. Popular solutions for basemaps are subscription APIs from Google and Esri. The first Protomaps commercial product offering was a one-time basemap download - not an API, not a subscription, just a download with a big Buy Now button:
This enables companies to deploy a self-contained mapping solution for one flat fee, on the cloud infrastructure they already use. The total costs end up 10 to 100x less than a hosted solution like Google Maps, and it works forever.
Leaving Open Core
The Protomaps Store is closed now, and everything previously proprietary is open source on GitHub. It had some potential for sustaining the development of the open source project, but suffers key drawbacks of open core:
It splits development effort between proprietary parts and open source parts. For a single full-time developer, this draws attention away from the the higher-impact FOSS project.
The proprietary nature and “bus factor” of being an independent bootstrapped project presents a risk to potential commercial adopters.
It alienates users. Maintainers waste time explaining which parts are open and which are not, and contributions that overlap with the proprietary components are excluded.
It creates a licensing mess, requiring specialized terms on how data artifacts can be stored and distributed to re-introduce scarcity.
Sponsor-supported SaaS
Offering a hosted SaaS is crucial for web apps that don’t need the flexibility of controlling the data on their own storage. The Protomaps API now accepts payments via GitHub Sponsors. This centers the open source code over the inherently proprietary API: at any point, you are free to exit the API and run Protomaps yourself, and your monetary contribution continues to sustain the project.
You can also cache any results from the tiles. Please don’t heavily scrape the API though, that’s inefficient; you can download the whole file for free at maps.protomaps.com/builds, or bulk extract a region using the pmtiles CLI.
New Commercial Distribution
The daily build of the Protomaps basemap is created from up-to-date OpenStreetMap data, and distributed as an ODbL Produced Work. This ensures that map viewers can contribute data into OSM and have free access to an updated map within 24 hours.
Alongside this free build is a new Protomaps Commercial Distribution built from the Daylight Map subset of OSM, which can be a better fit for public-facing deployments by companies. Access to this is granted via the second tier of GitHub Sponsors. Update: The Commercial Distribution is currently paused until later in 2024!
You can buy it once, copy it to your own cloud storage, and never pay for it again. A monthly sponsorship gives you access to new versions.
Any previous customer of the Protomaps Store has complimentary access to the Commercial Distribution for one year.
Protomaps Access
The third product tier available through GitHub Sponsors is Access - direct communications with the project lead developer, via your company’s Slack or Teams. This includes:
- Evaluation of private datasets and deployment infrastructure
- Recommendations on geospatial architecture, even if it’s not Protomaps: PostGIS, OpenLayers and more
- Ensures knowledge is accessible to your entire team
There’s no long-term commitment for Access - a single month can work as a training course for your org on how to simplify your geospatial apps. Many companies have already adopted Protomaps into critical parts of their product, and Access is the best way of ensuring continued investment in that infrastructure.
See Also
This blog post summarizes my FOSS4G NA talk, which is available online here.