Privacy Guides

Your central privacy and security resource to protect yourself online.

## About **Privacy Guides** is a socially motivated website that provides information for protecting your data security and privacy. Our mission is to inform the public about the value of digital privacy, and global government initiatives which aim to monitor your online activity. We are a non-profit collective operated entirely by volunteer team members and contributors. Our website is free of advertisements and not affiliated with any of the listed providers. The current list of team members can be found [here](https://www.privacyguides.org/en/about/#executive-committee). Additionally, [many people](#contributors) have made contributions to the project, and you can too! *Featured on: [Tweakers](https://tweakers.net/reviews/10568/op-zoek-naar-privacyvriendelijke-tools-niek-de-wilde-van-privacy-guides.html), [The New York Times](https://nytimes.com/wirecutter/guides/online-security-social-media-privacy), [Wired](https://wired.com/story/firefox-mozilla-2022), and [Fast Company](https://www.fastcompany.com/91167564/mozilla-wants-you-to-love-firefox-again).* ## Contributing - πŸ’¬ [Start a discussion or suggest an idea](https://discuss.privacyguides.net) - πŸ’– [Sponsor the project](https://github.com/sponsors/privacyguides) - 🈴 [Help translate the site](https://crowdin.com/project/privacyguides) [[Matrix chat](https://matrix.to/#/#pg-i18n:aragon.sh)] - πŸ“ Edit the site, everything's accessible in this repo - Browse our [open issues](https://github.com/privacyguides/privacyguides.org/issues) to see what needs to be updated - View the list of [approved topics waiting for a PR](https://discuss.privacyguides.net/tag/approved) - Read some writing tips in our [style guide](https://www.privacyguides.org/en/meta/writing-style) All contributors to the site are listed [here](#contributors). If you have contributed to the website or project, please [add yourself](https://github.com/privacyguides/privacyguides.org/issues/2524) to the list or ask @jonaharagon to make the change. ## Mirrors - **GitHub Pages:** [privacyguides.github.io/privacyguides.org](https://privacyguides.github.io/privacyguides.org/en/) - **Netlify (AWS):** [illustrious-bavarois-56cf30.netlify.app](https://illustrious-bavarois-56cf30.netlify.app/en/) - **BunnyCDN:** [privacyguides-org-production.b-cdn.net](https://privacyguides-org-production.b-cdn.net/en/) - **Hetzner:** [direct.privacyguides.org](https://direct.privacyguides.org/en/) (discouraged!) ### Alternative Networks > [!NOTE] > Most hidden service providers are not very extensively used or tested, [which is why we strongly recommend Tor](https://www.privacyguides.org/en/tor/). Using other networks could be more likely to endanger your anonymity, so make sure you know what you're doing. - **Tor/onion:** [xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion](http://www.xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion) - **IPFS:** `/ipns/ipfs.privacyguides.org` (**not** anonymous) - Please help us out by pinning a copy: [Learn more](https://github.com/privacyguides/webserver/blob/main/ipfs/README.md) - via Cloudflare: [cloudflare-ipfs.com/ipns/ipfs.privacyguides.org](https://cloudflare-ipfs.com/ipns/ipfs.privacyguides.org/en/) - via 4everland: [ipfs-privacyguides-org.ipns.4everland.io](https://ipfs-privacyguides-org.ipns.4everland.io/) - via [@jonaharagon](https://github.com/jonaharagon): [ipfs.jonaharagon.net/ipns/ipfs.privacyguides.org](https://ipfs.jonaharagon.net/ipns/ipfs.privacyguides.org/en/) - via [peer](https://docs.ipfs.tech/how-to/peering-with-content-providers/): `/dnsaddr/node-1.ipfs.jonaharagon.net/p2p/12D3KooWMwqzuApCKxYfo66zq5BrTjCoz9naJ1rrMEBCnwuGGqWB` - **I2P:** [privacyguides.i2p](http://privacyguides.i2p/?i2paddresshelper=fvbkmooriuqgssrjvbxu7nrwms5zyhf34r3uuppoakwwsm7ysv6q.b32.i2p) - **Yggdrasil:** [http://[200:f3a6:4922:e067:770d:ac57:fcb1:8dbf]](http://[200:f3a6:4922:e067:770d:ac57:fcb1:8dbf]/en/) (**not** anonymous) - via public peer: `tcp://5.161.245.8:45454` ### Git Mirrors [![GitHub](https://img.shields.io/static/v1?logo=github&label=&message=GitHub&color=000&style=for-the-badge)](https://github.com/privacyguides/privacyguides.org) [![GitLab](https://img.shields.io/static/v1?logo=gitlab&label=&message=GitLab&color=000&style=for-the-badge)](https://gitlab.com/privacyguides/privacyguides.org) [![Codeberg](https://img.shields.io/static/v1?logo=codeberg&label=&message=Codeberg&color=000&style=for-the-badge)](https://codeberg.org/privacyguides/privacyguides.org) [![Gitea](https://img.shields.io/static/v1?logo=gitea&label=&message=Gitea&color=000&style=for-the-badge)](https://code.privacyguides.dev/privacyguides/privacyguides.org) [![Forgejo](https://img.shields.io/static/v1?logo=forgejo&label=&message=Forgejo&color=000&style=for-the-badge)](https://git.jonaharagon.net/privacyguides/privacyguides.org) ## License Copyright © 2019 - 2024 [Privacy Guides contributors](#contributors). Privacy Guides content is licensed under the [Creative Commons Attribution-ShareAlike 4.0 International Public License](/LICENSE), and the underlying source code used to format and display that content on [www.privacyguides.org](https://www.privacyguides.org) is licensed under the [MIT License](/LICENSE-CODE). Generally speaking, **content** can be found in the [`/docs`](/docs), [`/theme/assets/img`](/theme/assets/img) and [`/includes`](/includes) folders; and **source code** and configuration files can be found in the [`/config`](/config) and [`/theme`](/theme) folders, and in the root of this repository. Any source code snippets contained within documentation files are [MIT Licensed](/LICENSE-CODE). Please contact us if you require clarification on any of these terms. These licenses do not apply to any work where another license is otherwise noted. **Logos** in the [`/theme/assets/img`](/theme/assets/img) folder may not be original works of Privacy Guides and therefore cannot be (re)licensed by us. We believe that these logos obtained from third-party providers are either in the public domain or **fair use**. In a nutshell, legal [fair use doctrine](https://copyright.gov/fair-use/more-info.html) allows the use of copyrighted images in order to identify the subject for purposes of public comment. However, these logos and other images may still be subject to trademark laws in one or more jurisdictions. Before using this content, please ensure that it is used to identify the entity or organization that owns the trademark and that you have the right to use it under the laws which apply in the circumstances of your intended use. *When copying content from this website, you are solely responsible for ensuring that you do not infringe someone else's trademark or copyright.* You may comply with our license terms in any reasonable manner, but not in any way that suggests Privacy Guides endorses you or your use. You **may not** use the Privacy Guides branding in your own project without express approval from this project. Privacy Guides's brand trademarks include the "Privacy Guides" wordmark and shield logo. When you contribute to this repository you are doing so under the above licenses, and you are granting Privacy Guides a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license with the right to sublicense such rights through multiple tiers of sublicensees, to reproduce, modify, display, perform and distribute your contribution as part of our project. ## Developing [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/privacyguides/privacyguides.org?devcontainer_path=.devcontainer%2Fdevcontainer.json) Committing to this repository requires [signing your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) (`git config commit.gpgsign true`) unless you are making edits via the GitHub.com text editor interface. As of August 2022 the preferred signing method is [SSH commit signatures](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification), but GPG signing is also acceptable. You should add your signing key to your GitHub profile. ### With `mkdocs-material` 1. Install required packages: `pip install mkdocs-material` 2. Run a local preview of the English site: `./run.sh --cmd=mkdocs` ### With `mkdocs-material-insiders` This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdocs-material/insiders) which offers additional functionality over the open-source `mkdocs-material` project. For obvious reasons we cannot distribute access to the insiders repository. **Team members** should clone the repository with `mkdocs-material-insiders` directly. This method is identical to production: 1. Clone this repository and submodules: `git clone --recurse-submodules https://github.com/privacyguides/privacyguides.org.git` 2. Enable SSH commit verification with our local [`.allowed_signers`](/.allowed_signers) file: `git config gpg.ssh.allowedSignersFile .allowed_signers` 3. Install Python **3.12**. 4. Install **pipenv**: `pip install pipenv` 5. Install dependencies: `pipenv install --dev` (install [Pillow and CairoSVG](https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#dependencies) as well to generate social cards) 6. Serve the site locally: `./run.sh --insiders` (set `CARDS=true` to generate social cards) - The site will be available at `http://localhost:8000` - You can build the site locally with `./run.sh --insiders --build` - This version of the site should be identical to the live, production version If you commit to `main` with commits signed with your SSH key, you should add your SSH key to [`.allowed_signers`](/.allowed_signers) in this repo. ### Local Translated Site Builds 1. Install the [Crowdin CLI Tool](https://developer.crowdin.com/cli-tool) (`brew install crowdin`) 2. Set the `CROWDIN_PERSONAL_TOKEN` environment variable to your Crowdin personal access token 3. Run `crowdin download` in the root of this repo 4. Serve the site locally: `./run.sh --insiders --lang=fr` (replacing fr with the appropriate language in [/config](/config)) Translations downloaded from Crowdin are [.gitignore](/.gitignore)'d, so any local changes to the translated site cannot be committed to this repo. Actual modifications need to be made on Crowdin. As an alternative to steps 1-3, you can copy the folders from [privacyguides/i18n](https://github.com/privacyguides/i18n) to the root of this repo to obtain the translated files. ## Releasing It is required to create a GitHub release to publish the current site to privacyguides.org. The current `main` branch can be previewed at [https://main.staging.privacyguides.dev](https://main.staging.privacyguides.dev) prior to release. 1. Create a new tag: `git tag -s YYYY.MM.DD -m 'Some message'` - Tag numbering: `YYYY.MM.DD` - if two+ releases are published on the same day, append short commit sha to next release, e.g. `YYYY.MM.DD-6aa14e8` - Enable GPG tag signing by default (`git config tag.gpgSign true`) to avoid missing signatures 2. Push the tag to GitHub: `git push --tags` 3. A GitHub Release will be automatically created and deployed to the live site. - You may wish to manually check or edit the release changelog/title after it is published for accuracy. ## Contributors Privacy Guides wouldn't be possible without these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Jonah Aragon

πŸ“– πŸ‘€ πŸ“† πŸ’» πŸš‡ πŸ›‘οΈ πŸ“ 🎨 πŸ“¦ πŸ“£ πŸ’¬ πŸ”¬ 🚧 πŸ§‘β€πŸ« ️️️️♿️ πŸ€” πŸ“Ή πŸ› πŸ’Ό

Daniel Nathan Gray

πŸ“– πŸ§‘β€πŸ« πŸ“† πŸ’¬ πŸ”¬ πŸ‘€ πŸ› 🚧 πŸ€” πŸ›‘οΈ

Freddy

πŸ“– πŸ“ πŸ‘€ πŸ”¬ 🚧 πŸ› πŸ€” πŸ’¬

Niek de Wilde

πŸ“– πŸ› πŸ”¬ πŸ‘€ πŸš‡ πŸ’¬ πŸ€” πŸ“ πŸ”Š

hook9

πŸ“– πŸ”¬ πŸ‘€ πŸ€”

Aminda Suomalainen ⚧

πŸ“– πŸ‘€ πŸ€” πŸ”¬ ️️️️♿️ πŸ’¬ πŸ“†

nitrohorse

πŸ“– πŸ‘€ πŸ€” πŸ“

Dawid Potocki

πŸ“– πŸ‘€ πŸ€” 🎨 πŸ”¬

Dale E. Wingard, Jr.

πŸ“– πŸ‘€ πŸ€” πŸ”¬

Kewde

πŸ“– πŸ’» πŸ”¬

Vince

πŸ“– πŸ’» πŸ”¬

shifterovich2

πŸ“– πŸ’» πŸ”¬

mfwmyfacewhen
πŸ“– πŸ€” πŸ‘€ πŸ”¬ πŸ’¬

Tommy

πŸ“– πŸ‘€ πŸ”¬ πŸ’¬

Kai Tebay

πŸ€” πŸ“– πŸ”¬ πŸ’»

matchboxbananasynergy

πŸ“– πŸ”¬ πŸ€” πŸ‘€ πŸ“

fria

πŸ“– πŸ‘€ πŸ”¬ πŸ’¬ πŸ› πŸ€”

GitHub Actions

πŸš‡

Triplebit

πŸš‡

MAGIC Grants

πŸ’Ό

Netlify

πŸš‡

Dependabot

πŸ’» πŸš‡

Hetzner Cloud

πŸš‡

Cloudflare

πŸš‡

Open Collective

πŸ’Ό

Safing

πŸ’΅

Dan Arel

πŸ“ πŸ“– πŸ”¬

Techlore

πŸ’΅

elitejake

πŸ“–

samsepi0l

πŸ“–

rollsicecream

πŸ“– πŸ’¬ 🌍 πŸ‘€

Henry Fisher

πŸ“–

Nate Bartram

πŸ“

Sam Howell

πŸ“

asddsaz

πŸ“–

Hugo Costa

πŸ“–

C-O-M-P-A-R-T-M-E-N-T-A-L-I-Z-A-T-I-O-N

πŸ“–

Alberto Strappazzon

πŸ“–

Victorhck

πŸ“–

Tai Lam

πŸ“–

NinebitX

πŸ“–

Alexander Antukh

πŸ“–

Gusted

πŸ“–

redoomed1

πŸ‘€ πŸ“–

Offpics

πŸ“–

kimg45

πŸ“–

djoate

πŸ“–

afighttilldeath

πŸ“–

Paul Verbeke

πŸ“– 🌍 πŸ› πŸ§‘β€πŸ«

Mitchell Cash

πŸ“–

NeverDucky

πŸ“–

efb4f5ff-1298-471a-8973-3d47447115dc

πŸ“–

Stephen Karl Larroque

πŸ“–

0rdinant

πŸ“–

Zenithium

πŸ“–

Jordan Gwyn

πŸ“–

Guru

πŸ“–

datoshkr

πŸ“–

Kcchouette

πŸ“–

Jacob Neplokh

πŸ“–

Leonardo Mazzon

πŸ“– πŸ› πŸ’΅ πŸ“£ πŸ’¬ 🌍

Andrew Chong

πŸ“–

Wok

πŸ“–

nopeitsnothing

πŸ“–

Lynn Stephenson

πŸ“–

Cory Solovewicz

πŸ“–

noClaps

πŸ“–

Brian

πŸ“–

SkewedZeppelin

πŸ“– πŸ’¬

Arcadius3D

πŸ“–

vpnarea

πŸ“–

namazso

πŸ“– πŸ’¬

cYDN48

πŸ“–

gjhklfdsa

πŸ“–

Pavel Zolotarevskiy

πŸ“–

quiddity-wp

πŸ“–

Nikhil Jha

πŸ“–

Subatomic Honda Civic

πŸ“–

ticklemyIP

πŸ“–

jermanuts

πŸ“–

conorohiggins

πŸ“–

TechFanTheo

πŸ“–

Ryan Taylor

πŸ“–

Positron832

πŸ“–

JustLuckNoSkill

πŸ“–

Arkadiy

πŸ“–

Jack Chou

πŸ“–

ave

πŸ“–

Boo

πŸ“–

IDKwhattoputhere

πŸ“–

idkrn

πŸ“–

ggg27

πŸ“–

WalterKlosse

πŸ“–

Tom Hacohen

πŸ“–

Paul Feuvraux

πŸ“–

Scott Bennett

πŸ“–

Federico Ariel Castagnini

πŸ“–

jslawler-gh

πŸ“–

spaceoden

πŸ“–

xe3

πŸ“–

Andrew Morgan

πŸ“–

Caleb King

πŸ“–

Eduardo

πŸ“–

NafeezJS

πŸ“–

Sloofy

πŸ“–

Sam Schlinkert

πŸ“–

Gabor Luk

πŸ“–

DeiAsPie

πŸ“–

Davide Taviani

πŸ“–

spanishharlem

πŸ“–

Jacob Gonzales

πŸ“–

Kaede

πŸ“–

LABB

πŸ“–

Raviu8

πŸ“–

Peter Dave Hello

πŸ“–

Rose

πŸ“–

Oskar Sharipov

πŸ“–

Samuel Lucas

πŸ“–

NylaTheWolf

πŸ“–

Matthew Davis

πŸ“–

Mark Cohen

πŸ“–

Mad Scientist

πŸ“–

Maarten

πŸ“–

William Davis

πŸ“–

William Thomas Wilkins

πŸ“–

wylel

πŸ“–

Will Browning

πŸ“–

Yi Cao

πŸ“–

Yusuf Daglioglu

πŸ“–

Zack

πŸ“–

ZHηŽ‹

πŸ“–

ansuz

πŸ“–

archeite

πŸ“–

asdfghjz

πŸ“–

ayaen

πŸ“–

b-harper

πŸ“–

Loic Vourch

πŸ“–

crasm

πŸ“–

eagerto-learn

πŸ“–

egecelikci

πŸ“–

elleybean

πŸ“–

Evan Song

πŸ“–

pynixis

πŸ“–

Seirdy

πŸ“–

Ryan Huang

πŸ“–

Sascha P.

πŸ“–

Securified

πŸ“–

Sergey Musiyenko

πŸ“–

Spydar007

πŸ“–

Steven Bach

πŸ“–

Steven Lehn

πŸ“–

Steven van de Graaf

πŸ“–

Sven Kortekaas

πŸ“–

Tejas Gupta

πŸ“–

Tebowy Seba

πŸ“–

Ted Gravlin

πŸ“–

TheFrenchGhosty

πŸ“–

TheNoobWar

πŸ“–

Thomas Rientjes

πŸ“–

Tim Vergenz

πŸ“–

Tom Sullivan

πŸ“–

Tony Tan

πŸ“–

TroubleDog54

πŸ“–

User486375

πŸ“–

Nicholas Christensen

πŸ“–

oppressor1761

πŸ“–

pbbob

πŸ“–

pdjpdjpdj

πŸ“–

Stella Polaris

πŸ“– πŸ”¬ πŸ“£ πŸ’¬ πŸ‘€

regaldude

πŸ“–

rusty-snake

πŸ“–

sacha

πŸ“–

schwukas

πŸ“–

sh-dv

πŸ“–

szTheory

πŸ“–

Thunderbolt Digital

πŸ“–

E. S. Leonesco

πŸ“–

titanism

πŸ“–

tomac4t

πŸ“–

virustotalop

πŸ“–

wintr

πŸ“–

xelarate86

πŸ“–

yeoneer

πŸ“–

foxt

πŸ“–

Freddie

πŸ“–

ghbjklhv

πŸ“–

Raymond Hill

πŸ“–

luke crouch

πŸ“–

fd1f744993de14178e6c

πŸ“–

habitualname

πŸ“–

hook

πŸ“–

nein

πŸ“–

jkhgvfgvsth

πŸ“–

joaonsg

πŸ“–

johnnyburnaway

πŸ“–

jus9

πŸ“–

kc1212

πŸ“–

kryptish

πŸ“–

m3t

πŸ“–

macau23

πŸ“–

mat1th

πŸ“–

MWM

πŸ“–

Michael Plews

πŸ“–

moritztk

πŸ“–

Aaron Horler

πŸ“–

Commenter

πŸ“–

CΓ©dric Laubacher

πŸ“–

Daniel Peukert

πŸ“–

David Breese

πŸ“–

Dimitris Apostolou

πŸ“–

Dyrimon

πŸ“–

Ikel Atomig

πŸ“–

Elias Ojala

πŸ“–

Feni Brian

πŸ“–

Filip Ε 

πŸ“–

Felix Albroscheit

πŸ“–

GReagle

πŸ“–

Gamma

πŸ“–

GetBoz

πŸ“–

GrimPixel

πŸ“–

Guillem L. Jara

πŸ“–

HxxxxxS

πŸ“–

Himanshu Chandola

πŸ“–

Issam Maghni

πŸ“–

ItsDonny

πŸ“–

Abdullah Atta

πŸ“–

Adam Sroka

πŸ“–

criadoperez

πŸ“–

Alex Amiryan

πŸ“–

Alex Shoup

πŸ“–

Alex Thomassen

πŸ“–

Amolith

πŸ“–

Andrea Scarpino

πŸ“–

Armando LΓΌscher

πŸ“–

Ash T

πŸ“–

Bernd Eichelberger

πŸ“–

BionicBison05

πŸ“–

Brent Gervais

πŸ“–

Brian Cooper

πŸ“–

Caboose700

πŸ“–

Cadel Watson

πŸ“–

trosel

πŸ“–

Carl

πŸ“–

Chad Birch

πŸ“–

Chris Barry

πŸ“–

JΓΊlio Ferraz

πŸ“–

Jack Hill

πŸ“–

Mathias Oterhals Myklebust

πŸ“–

Mats Estensen

πŸ“–

Matt Baer

πŸ“–

Mehdi Chaouch

πŸ“–

Mike Perrone

πŸ“–

Mitch Wilkins

πŸ“–

Mo

πŸ“–

Morten Linderud

πŸ“–

natzim

πŸ“–

Douglas

πŸ“–

Nick

πŸ“–

NielDB

πŸ“–

Nihal Raj

πŸ“–

Noah

πŸ“–

Panagiotis "Ivory" Vasilopoulos

πŸ“–

Patrick R

πŸ“–

Fart Attorney

πŸ“–

Pilou

πŸ“–

PoorPockets McNewHold

πŸ“– 🌍

PrinceKael

πŸ“–

Richard

πŸ“–

Jaden Site

πŸ“–

Jake Zeal

πŸ“–

James Kerrane

πŸ“–

Sell

πŸ“–

YMHuang

πŸ“–

Jonathan Vansina

πŸ“–

jorgeluiscarrillo

πŸ“–

Julian

πŸ“–

Kefaku

πŸ“–

Kevin Brennan

πŸ“–

Kyle Spearrin

πŸ“–

Leon Allen

πŸ“–

LisaWilbourn

πŸ“–

Lord Shedy

πŸ“–

Louis Wolfers

πŸ“–

Lunush

πŸ“–

MMR

πŸ“–

Mads Peter Rommedahl

πŸ“–

Manuel Quarneti

πŸ“–

Marco Menzel

πŸ“–

Mario

πŸ“–

skye

πŸ’¬

r2fo

🌍

LamTrinh.Dev

πŸ“– πŸ› πŸ’¬

frostlike

πŸ’¬

Merlin Scholz

🌍

jordan warne

πŸ“–

DΕΎenan

🌍

jx tsai

🌍

backstab5983

πŸ“–

antgig

πŸ“–

Ákos NikhÑzy

πŸ“–

Francois Marier

πŸ“–

5-tom

πŸ“–

Ralphie0511

πŸ“–

aleksejs1

πŸ“–

Martin

πŸ“–

Overwatch

πŸ“–

Kieran Colfer

πŸ“–

Triple T

πŸ“–

IDON-TEXIST

πŸ“–

Yusuf Daglioglu

πŸ“–

Yi Cao

πŸ“–

Sayf Dhū al-Faqār

πŸ“–

eylenburg

πŸ“–

Kieran Colfer

πŸ“–

Justin Ehrenhofer

πŸ“– πŸ’Ό πŸ”
Add your contributions
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of **any** kind welcome, including contributions to Privacy Guides outside of this repo, and contributions that aren't content related (like sharing ideas for Privacy Guides, promoting the project, answering questions on the forum, etc.). CLI to generate this table: ```bash npx --package all-contributors-cli -- npx all-contributors generate ``` CLI to add a contributor: ```bash npx --package all-contributors-cli -- npx all-contributors add ``` See [this table](https://allcontributors.org/docs/en/emoji-key) for valid contribution reasons, comma-separated. Do **not** use the `content` code for contributors to the website, use `docs` instead (this way it will automatically link to their commits). Example: ```bash npx --package all-contributors-cli -- npx all-contributors add jonaharagon docs,research,question ```