Skip to content
NotAFlightRiskPublic

About

πŸ” The unsponsored VPN comparison. Logging, jurisdiction, audits and payment, side by side, with a source for every claim

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

381 Commits

Folders and files

Repository files navigation

fineprint

The unsponsored VPN comparison, with a source for every claim
🌐 fineprint.peng.ly

Contents

About

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.

Five VPN providers compared as cards, each with a checklist of green, amber and red marks


Usage

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

Contributing data

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.


Deployment

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_ID and CLOUDFLARE_API_TOKEN then 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 serve build/
  • Static host: Fork the repo, and import it to Vercel, Netlify or any other static hosting provider

Development

You'll need Node 22.18 or newer, plus Git.

git clone git@github.com:NotAFlightRisk/fineprint.git
cd fineprint
npm install
npm run dev

The 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/.


Credits

Inspired by That One Privacy Guy's VPN comparison chart, which did this first and did it well.

Contributors

contributors badge



Licensed under MIT, Β© NotAFlightRisk 2026

About

πŸ” The unsponsored VPN comparison. Logging, jurisdiction, audits and payment, side by side, with a source for every claim

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages