OpenServer: one file a hosting provider serves about what it sells
We wanted a database of hosting offers on nichedb.dev. The obvious source was an aggregator with 81,000 offers, and its terms forbid automated collection, copying and commercial use. Every comparison site works this way: scrape the providers, then forbid anyone from scraping the scrape. The provider, who wanted its offers seen, is the one party with no say.
So we published the file the provider should serve instead.
OpenServer is a JSON document at /.well-known/openserver.json on the provider's own origin. It lists every offer with its kind, specs, price, location and stock. A directory reads the provider's file, a buyer's agent reads it instead of a pricing page, and the provider stays the author of its own words.
What it covers
One enum for kind: cloud, vps, dedicated, bare-metal, colocation, on-prem, shared, managed, paas, serverless, storage, gpu, edge, p2p and hybrid. Then four axes as separate fields, so a reader filters without guessing: premises (on-prem, off-prem, hybrid), management (managed, unmanaged, co-managed), tenancy (shared, dedicated) and model (centralized, p2p).
A peer-to-peer market publishes one descriptor whose offers are its current asks, with stock and price updated as the market moves. That is the case a page scraper can never read.
Only two fields are required: the provider's name and each offer's name. Everything else degrades. Unknown keys are kept.
The first reader
nichedb.dev's hosting collection reads it today, beside the plan APIs of Vultr, Linode, Scaleway and OVH and the 185 hosts in findhost.app's CC BY 4.0 registry. Every plan in that collection is stored as an OpenServer offer, so a host that serves the file and a host we read through its API end up in the same shape.
Spec: https://logicsrc.com/docs/openserver
Related: OpenCPU, OpenMemory, OpenGPU and OpenBandwidth describe the resource blocks an offer carries. OpenDisk describes a peer renting disk, which lists as an OpenServer offer with kind storage.
This post was drafted with AI assistance and checked by a person.
Top comments (0)