The unsponsored VPN comparison, with a source for every claim
π fineprint.peng.ly
Contents
The aim of this project, is to provide an objective, unbiased, accurate comparison of VPN providers, focusing on privacy, security and essential features. There are no affiliate links, and every data point has either been manually tested and verified, or backed up by reputable sources. This is a community project, so we welcome additions/edits in the form of pull requests or issues.
Credit to That One Privacy Guy, whose old VPN comparison chart provided the inspiration for this project.
Just head to fineprint.peng.ly, where there's a summary of all VPN data viewable as cards, table or JSON. Each VPN has a dedicated page with full details, sources, a change history and edit options. For info about how the grading works, see the methodology page.
You can consume the data programmatically from our API endpoints too:
| URL | What's in it |
|---|---|
/api/providers.json |
Every provider, with grades and derived values worked out |
/api/criteria.json |
What's measured, and the grading rules |
/schema/provider.json |
JSON Schema for the provider YAML files |
/llms.txt |
A plain-text summary for AI assistants |
Each provider is one YAML file in data/providers/. And the criteria definition lives in data/criteria.yml.
Spotted something wrong? You can edit the YAML directly, and submit a pull request back to the repo. Some automated checks will verify the structure is correct when your PR is opened.
To add a provider, npm run new -- example-vpn "Example VPN", then edit the new example-vpn.yml file, filling in the fields. The contributing guide has more details on what to put for everything.
It's a fully static site, so it'll run anywhere that serves files. There's several options for deploying:
- Cloudflare: Fork the repo, add
CLOUDFLARE_ACCOUNT_IDandCLOUDFLARE_API_TOKENthen trigger the Deploy workflow - Docker: Just run
docker run -p 8080:8080 notaflightrisk/fineprint - From release: Download and unzip site.zip from the releases tab, then run
npx serve site - From source: Follow the Development steps below, then run
npm run build, and servebuild/ - Static host: Fork the repo, and import it to Vercel, Netlify or any other static hosting provider
You'll need Node 22.18 or newer, plus Git.
git clone git@github.com:NotAFlightRisk/fineprint.git
cd fineprint
npm install
npm run devThe dev server is then on localhost:5173.
npm run validate checks the data, npm test runs the tests, npm run check the types, and npm run preview serves a production build.
It's SvelteKit, prerendered to plain HTML. Loading, validating and grading the data all lives in src/lib/data/, shared by the site and the scripts in scripts/.
Inspired by That One Privacy Guy's VPN comparison chart, which did this first and did it well.
Licensed under MIT, Β© NotAFlightRisk 2026
