Compare commits

..

No commits in common. "master" and "german-language" have entirely different histories.

33 changed files with 505 additions and 4649 deletions

1
.gitattributes vendored
View File

@ -1 +0,0 @@
*.js -linguist-detectable

View File

@ -1,115 +0,0 @@
---
name: New alternative
description: Add a new alternative for a Google service
title: "[NEW] Alternative name here"
labels:
- new
body:
- type: markdown
attributes:
value: |
## Adding a new alternative to the list
Fill out to the best of your ability.
If an optional item is not applicable, feel free to ignore it.
- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: "**I have read the guidelines in [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md)**"
required: true
- label: Include my name in [CONTRIBUTORS.md](../blob/master/CONTRIBUTORS.md)
- label: I am affiliated with this alternative
- type: input
id: name
attributes:
label: Alternative name
description: Name of the alternative you wish to add
validations:
required: true
- type: dropdown
id: section
attributes:
label: Section
description: Please also include the section you feel it belongs best in
multiple: true
options:
- Browser extensions
- Web-based products
- Operating systems
- Desktop applications
- Mobile applications
- Hardware
- type: textarea
id: description
attributes:
label: Description
description: |
Please provide a brief description of the alternative,
one to 5 sentences which will be displayed along with the name.
validations:
required: true
- type: textarea
id: reasoning
attributes:
label: Reason for adding
description: |
Why is this alternative necessary? Don't use opinions and try to be objective.
- type: input
id: url
attributes:
label: URL
description: URL of the alternative you wish to add
placeholder: https://example-alternative.org
validations:
required: true
- type: input
id: repo
attributes:
label: Repository
description: Source Code repository for the alternative
placeholder: https://github.com/example/alternative
- type: input
id: fdroid
attributes:
label: F-Droid ID
description: If available on F-Droid, the ID of the app
placeholder: org.alternative.example
- type: textarea
id: other_links
attributes:
label: Other Links
description: If applicable or helpful, other links related to the alternative
- type: checkboxes
id: eyes
attributes:
label: Is this alternative hosted in a country that performs surveillance?
description: |
For more info on 5/9/14 eyes, please check here: https://restoreprivacy.com/5-eyes-9-eyes-14-eyes/
Usually only one applies, but you may select more than one.
options:
- label: 5 Eyes
- label: 9 Eyes
- label: 14 Eyes
- type: dropdown
id: pricing
attributes:
label: Is there a cost to use this alternative?
options:
- Free
- Paid
- Freemium (Free tier but paid upgrades)
- type: dropdown
id: self-hosting
attributes:
label: Please indicate if self-hosting is possible, not possible, or the only option
options:
- Possible
- Not possible
- Only self-hosted
- type: textarea
id: additional_details
attributes:
label: Additional Details
description: Use this space to add any other relevant information about the alternative

View File

@ -1,43 +0,0 @@
---
name: Fix/update alternative
description: Fix or update an existing alternative.
title: "[FIX] Alternative name here"
labels:
- fix
body:
- type: markdown
attributes:
value: |
## Fixing details about an alternative in the list
Fill out to the best of your ability.
If an item is not applicable, feel free to ignore it.
- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: "**I have read the guidelines in [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md)**"
required: true
- label: Include my name in [CONTRIBUTORS.md](../blob/master/CONTRIBUTORS.md)
- label: I am affiliated with this alternative
- type: input
id: alternative_name
attributes:
label: Alternative name
description: Which alternative needs to be fixed or updated?
- type: textarea
id: error
attributes:
label: Error
description: What might be wrong or what should be updated?
- type: textarea
id: proposed_changes
attributes:
label: Proposed changes
description: What do you suggest be changed?
- type: textarea
id: additional_details
attributes:
label: Additional details
description: Add any additional details here.

View File

@ -1,36 +0,0 @@
---
name: Remove alternative
description: Provide details on why an existing alternative should be removed.
title: "[REMOVE] Alternative name here"
labels:
- remove
body:
- type: markdown
attributes:
value: |
## Removing an existing alternative from the list
Fill out to the best of your ability.
- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: "**I have read the guidelines in [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md)**"
required: true
- label: Include my name in [CONTRIBUTORS.md](../blob/master/CONTRIBUTORS.md)
- label: I am affiliated with this alternative
- type: input
id: alternative_name
attributes:
label: Alternative name
description: Which alternative needs to be removed?
validations:
required: true
- type: textarea
id: reason
attributes:
label: Reason
description: Why should this alternative be removed?
validations:
required: true

View File

@ -1,7 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Other
url: https://github.com/tycrek/degoogle/discussions
about: >
Have a question or other topic of discussion that isn't adding/removing/modifying an alternative?
The "Discussions" forum is where you want to start.

View File

@ -0,0 +1,16 @@
---
name: Fix/update alternative
about: Fix or update an exsting alternative.
title: "[FIX] Fix/update alternative"
labels: ''
assignees: ''
---
**Service name**: *enter name here. Required.*
**Error**: *enter what might be wrong or what should be updated.*
**Proposed changes**: *enter what you suggest should be added.*
**Additional details**: *any additional details*

View File

@ -0,0 +1,16 @@
---
name: New alternative
about: Add a new alternative for a Google service
title: "[NEW] New alternative"
labels: ''
assignees: ''
---
**Service name**: *enter service name here. Required*
**Service URL**: *service URL here. Required*
**5/9/14 eyes?**: yes/no/unknown
**Description**: *detail why this service should be added. Include details such as pricing and privacy.*

11
.github/ISSUE_TEMPLATE/other.md vendored Normal file
View File

@ -0,0 +1,11 @@
---
name: Other
about: Anything else that does not fit the other templates. Blank issues are also
permitted.
title: "[OTHER]"
labels: ''
assignees: ''
---

View File

@ -0,0 +1,12 @@
---
name: Remove alternative
about: Provide details on why an existing alternative should be removed.
title: "[REMOVE] Remove alternative"
labels: ''
assignees: ''
---
**Service name**: *enter service name here. Required*
**Reason**: *detail why this service should be removed. Include any relevant links. **This is not the place for personal opinions**.*

View File

@ -1,15 +0,0 @@
<!-- If your Pull Request is related to an alternative, make sure there is a corresponding Issue for discussion. -->
| Checklist | |
| --------- | - |
| **I have read the guidelines in [CONTRIBUTING.md]** | yes/no |
| Include my name in [CONTRIBUTORS.md] | yes/no |
| I am affiliated with this alternative (if applicable) | yes/no |
### Details
<!-- Optional if details exist in a linked Issue. If that is the case, link to the Issue here. -->
[CONTRIBUTING.md]: ../blob/master/CONTRIBUTING.md
[CONTRIBUTORS.md]: ../blob/master/CONTRIBUTORS.md

View File

@ -1,40 +0,0 @@
name: Build
on:
push:
branches:
- master
paths:
- yaml/*.yml
- md/*.md
- _build.js
- _wiki.js
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 13.x
- name: Install dependencies
run: npm i
- name: Build
run: node _build.js
- name: Commit
run: |
git add README.md
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git commit --allow-empty -m "Generated README.md"
- name: Push
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: master
- name: Wiki
run: node _wiki.js
env:
REDDIT_USER: ${{ secrets.REDDIT_USER}}
REDDIT_PASS: ${{ secrets.REDDIT_PASS}}
REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID}}
REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_CLIENT_SECRET}}

116
.gitignore vendored
View File

@ -1,116 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

View File

@ -1,35 +1,34 @@
# Contributing
###### Last revised: August 9th, 2021
Contributing is simple enough, just make sure to try and follow these guidelines:
###### Templates revised: August 9th, 2021
1. English only for Issues & Pull Requests.
2. Try to fill out as much info as you can. This makes it easier for me to quickly approve changes.
3. No personal opinions on why a service should be removed. Links to articles with details is much more helpful.
4. Try to use the Issue templates if possible, but they are not necessary.
5. Try to limit yourself to ONE alternative per Issue. Pull Requests are OK to have multiple additions.
6. Check to see if the alternative you want added already exists in the guide.
## General rules
If you submitted a change that made it into the guide but don't have your Reddit or GitHub username on the [CONTRIBUTORS.md](https://github.com/tycrek/degoogle/blob/master/CONTRIBUTORS.md) list, let me know! Sometimes I forget. Alternatively, if your username is on the list and you do *not* want it there, let me know.
1. **English only** for issues & pull requests.
2. **Do not edit `README.md`!** This file is automatically generated.
3. Personal opinions will **not** be considered when adding or removing an alternative. Instead, provide links to articles with details.
4. **Use the templates** when submitting an Issue or Pull Request. Blank Issues/PRs are not allowed.
## Formatting
## How to submit a change
To keep the guide consistent & clean, try to follow these formatting rules:
### A: I am not familiar with GitHub or Pull Requests
1. The alternative entry must be **indented with two spaces** before the hyphen.
2. Use `[square brackets](regular brackets)` for links instead of referenced links `[square brackets][1]`
3. Separate the link and the description with **space, hypen, space**.
4. If applicable, add an "eyes" disclaimer. Eyes disclaimers must be in bold. The number and "eyes" are connected with a hyphen.
5. Try to avoid spelling mistakes. If they show up I can always fix them.
1. Open a [new Issue].
2. Select a template to use. If in doubt, use **Other**.
3. Fill out the information to the best of your ability.
4. When you are finished, click **Submit new issue**.
**Sample**
### B: I have used GitHub Pull Requests
```markdown
- Google Service
- [Alternative Name](https://example.org) - A brief description of the alternative.
- [Another one](https://example.com) - **9-eyes** - If applicable, mention paid plans.
```
1. Create your Pull Request with your changes.
- Remember to **not** edit `README.md`!
- As with Issues, fill out the template as best you can.
2. For PR's relating to alternatives, please follow the steps above to also create an Issue for discussion. Simple PR's that are unrelated to a specific alternative may not require an Issue. If in doubt, create an **Other** Issue.
## I contributed but I am not in the list (or) I do not want to be in the list anymore
If you submitted a change that made it into the guide but don't have your Reddit or GitHub username in the [CONTRIBUTORS.md] list, open an issue or pull request so I can fix it. Alternatively, if your username is on the list and you do *not* want it there, feel free to request this as well.
[new Issue]: https://github.com/tycrek/degoogle/issues/new/choose
[CONTRIBUTORS.md]: https://github.com/tycrek/degoogle/blob/master/CONTRIBUTORS.md
- Google Service
- [Alternative Name](https://alternative.link) - A brief description of the alternative.
- [Another one](https://example.com) - **9-eyes** - If applicable, mention paid plans.

View File

@ -1,6 +1,6 @@
Thanks to everyone here for contributing in some way! (usernames are in no particular order).
### GitHub:
GitHub:
- [Fabian Cook](https://github.com/fabiancook)
- [Alexander Schaap](https://github.com/aschaap)
@ -19,6 +19,7 @@ Thanks to everyone here for contributing in some way! (usernames are in no parti
- [@okias](https://github.com/okias)
- [@flubberding](https://github.com/flubberding)
- [@je-vv](https://github.com/je-vv)
- [@RefexHD](https://github.com/RefexHD)
- [@chribre](https://github.com/chribre)
- [@jankapunkt](https://github.com/jankapunkt)
- [@jeanofthedead](https://github.com/jeanofthedead)
@ -37,57 +38,8 @@ Thanks to everyone here for contributing in some way! (usernames are in no parti
- [@notpushkin](https://github.com/notpushkin)
- [@FultonBrowne](https://github.com/FultonBrowne)
- [@GreyLivesMatter](https://github.com/GreyLivesMatter)
- [@notpushkin](https://github.com/notpushkin)
- [@onlyjob](https://github.com/onlyjob)
- [@marco3mt](https://github.com/marco3mt)
- [@E5dZEUpc3BKaJrHnQVZd5zE](https://github.com/E5dZEUpc3BKaJrHnQVZd5zE)
- [@woutfeys](https://github.com/woutfeys)
- [@virtadpt](https://github.com/virtadpt)
- [@compressstudio](https://github.com/compressstudio)
- [@PalmoliveDev](https://github.com/PalmoliveDev)
- [@mahdi1234](https://github.com/mahdi1234)
- [@kdkasad](https://github.com/kdkasad)
- [@resto1231](https://githgithub.com/resto1231)
- [@kdrag0n](https://github.com/kdrag0n)
- [@ianschmitz](https://github.com/ianschmitz)
- [@mythmakerseven](https://github.com/mythmakerseven)
- [@SuperSandro2000](https://github.com/superSandro2000)
- [@honorsea](https://github.com/honorsea)
- [@chanana](https://github.com/chanana)
- [@m0yP](https://github.com/m0yP)
- [@mceachen](https://github.com/mceachen)
- [@adam-sroka](https://github.com/adam-sroka)
- [@freddy-m](https://github.com/freddy-m)
- [@Cristy94](https://github.com/Cristy94)
- [@rkingett](https://github.com/rkingett)
- [@komape](https://github.com/komape)
- [@jefersonralmeida](https://github.com/jefersonralmeida)
- [@codedust](https://github.com/codedust)
- [@shivasagarrao](https://github.com/shivasagarrao)
- [@0xflotus](https://github.com/0xflotus)
- [@J053Fabi0](https://github.com/J053Fabi0)
- [@trexx](https://github.com/trexx)
- [@anthonynsimon](https://github.com/anthonynsimon)
- [@timbuening](https://github.com/timbuening)
- [@infectormp](https://github.com/infectormp)
- [@vivekmiyani](https://github.com/vivekmiyani)
- [@evrifaessa](https://github.com/evrifaessa)
- [@MahbodHastam](https://github.com/MahbodHastam)
- [@aa1874](https://github.com/aa1874)
- [@bgrgndzz](https://github.com/bgrgndzz)
- [@samcross021](https://github.com/samcross021)
- [@Shahin-rmz](https://github.com/Shahin-rmz)
- [@vishnukvmd](https://github.com/vishnukvmd)
- [@Joshuasony](https://github.com/Joshuasony)
- [@BobIsMyManager](https://github.com/BobIsMyManager)
- [@itforweb666](https://github.com/itforweb666)
- [@seanking2919](https://github.com/seanking2919)
- [@FireMasterK](https://github.com/FireMasterK)
- [@julianfairfax](https://github.com/julianfairfax)
- [@ACK-J](https://github.com/ACK-J)
- [@joebudi](https://github.com/joebudi)
### Reddit:
Reddit:
- u/SheepKid12
- u/yieldingTemporarily
@ -121,4 +73,3 @@ Thanks to everyone here for contributing in some way! (usernames are in no parti
- u/masao77
- u/-Choose-A-User-
- u/EbonixCo
- u/TheCy-FiJuggernaut

View File

@ -8,15 +8,14 @@ Official mirrors are the main sources and are maintained by me (@tycrek). Commun
- [GitHub repo](https://github.com/tycrek/degoogle)
- [GitHub Pages](https://degoogle.jmoore.dev) (I am using my personal domain as some firewalls block GitHub)
- [r/Privacy wiki](https://old.reddit.com/r/privacy/wiki/de-google) (automatically updated using GitHub Actions)
- [r/Privacy wiki](https://old.reddit.com/r/privacy/wiki/de-google) (Manually maintained by me, @tycrek. Message me on Reddit or open an Issue if it is not up-to-date)
## Community mirrors
- [GitLab mirror](https://gitlab.com/SheepKid12/degoogle) from u/SheepKid12
- [Gitea mirror](https://git.xerbo.net/Xerbo/degoogle) from [@Xerbo](https://github.com/Xerbo)
- [Gitea mirror](https://git.mirkodi.tech/mirk0dex/degoogle) from [@mirk0dex (Gitea)](https://git.mirkodi.tech/mirk0dex)
- [BookRefine Publishing](https://bookrefine.com/degoogle/) (thanks @GreyLivesMatter for the updated link)
## Non-english mirrors
- [Turkish/Türk](https://github.com/melikechan/degoogle-turkish) from [@melikechan](https://github.com/melikechan)
- [Italian/Italiano](https://gitea.it/devol/degooglizzazione) from [@devol (Gitea)](https://gitea.it/devol)
- [German/Deutsch](https://github.com/arentro/degoogle_german) from [@arentro](https://github.com/arentro)

1403
README.md

File diff suppressed because it is too large Load Diff

178
_build.js
View File

@ -1,178 +0,0 @@
// Build tool for generating README.md
const { EOL } = require('os');
const path = require('path');
const fs = require('fs-extra');
const moment = require('moment');
const YAML = require('yaml');
const BUILD_SECTION = {
header: () => readFile('md/_header.md').replace('{{DATE}}', moment().format('MMMM Do YYYY').replace(/ /g, '%20')),
index: () => readFile('md/_index.md'),
contributing: () => readFile('md/_contributing.md'),
browserExtensions: () => generateBrowserExtensions(),
disclaimer: () => readFile('md/_disclaimer.md'),
webBasedProducts: () => generateCategorySection('Web-based products', readYaml()['web based products']),
operatingSystems: () => generateCategorySection('Operating systems', readYaml()['operating systems']),
desktopApps: () => generateCategorySection('Desktop apps', readYaml()['desktop applications']),
mobileApps: () => generateCategorySection('Mobile apps', readYaml()['mobile applications']),
hardware: () => generateCategorySection('Hardware', readYaml()['hardware']),
useful: () => '# Useful links, tools, and advice',
resources: () => readFile('md/_resources.md'),
books: () => generatePublications('Books', 'books'),
blogs: () => generatePublications('Blog posts', 'blogs'),
news: () => generatePublications('News articles', 'news'),
lighterSide: () => readFile('md/_lighterSide.md'),
closingRemarks: () => readFile('md/_closingRemarks.md')
};
// Button that brings the user to the top of the page
const BACK_TO_TOP = '[![Back to top](https://img.shields.io/badge/Back%20to%20top-lightgrey?style=flat-square)](#index)';
/**
* Synchronously reads a file using fs-extra and path.join()
* @param {String} filename The file to read
*/
function readFile(filename) {
return fs.readFileSync(path.join(__dirname, filename)).toString();
}
/**
* Reads degoogle.yml
*/
function readYaml() {
return YAML.parse(fs.readFileSync(path.join(__dirname, 'yaml/degoogle.yml')).toString());
}
/**
* Generates a major section or "category" such as Mobile Apps
* @param {String} header Title for section
* @param {Object} data Object of data to populate README.md with
*/
function generateCategorySection(header, data) {
if (!data) return '';
return `## ${header}${EOL}${BACK_TO_TOP}${EOL}${EOL}`.concat(Object.values(data).map((value) => `${generateServiceSection(value)}${EOL}${EOL}`).join(''))
}
/**
* Generates a service (such as Gmail) section to be placed under a category section
* @param {Array} data
*/
function generateServiceSection(data) {
// Start the section with an <h4> header
let serviceSection = `#### ${data[0].title + EOL + EOL}`;
// Prep section notes
let notes = EOL + '';
// If there is data to be displayed, add the start of a Markdown table
const tableHeader = (data.filter((d) => 'name' in d).length === 0)
? `No known alternatives.${EOL}`
: `| Name | Eyes | Description |${EOL}| ---- | ---- | ----------- |${EOL}`;
// Add the header to the section body
serviceSection = serviceSection.concat(tableHeader);
// Iterate over each alternative service and add it to the table
data.forEach((item) => {
// If the object has length one, it's either title or note
if (Object.keys(item).length == 1) {
if (!item.notes) return;
else item.notes.forEach((note) => notes = notes.concat(`- *${note.trim()}*${EOL}`));
} else {
// Build the cells for the table
let name = `[${item.name}](${item.url})`;
let eyes = item.eyes ? `**${item.eyes}-eyes**` : '';
let text = item.text.trim();
// Append the F-Droid badge to the name
if (item.fdroid) name = name.concat('<br/>', fdroidLink(item.fdroid));
// Append the Repo badge to the name
if (item.repo) name = name.concat('<br/>', repoLink(item.repo));
// Append the Star badge to the name
if (item.repo) name = name.concat('<br/>', starBadge(item.repo));
// Build the row
const tableItem = `| ${name} | ${eyes} | ${text} |${EOL}`;
// Add the row to the table
serviceSection = serviceSection.concat(tableItem);
}
});
return `${serviceSection}${notes}`;
}
/**
* Returns a badge acting as a link to an F-Droid page for an app.
* @param {String} appId The package identifier on F-Droid
*/
function fdroidLink(appId) {
return `[![F-Droid](https://img.shields.io/f-droid/v/${appId}?style=flat-square&logo=f-droid)](https://f-droid.org/en/packages/${appId}/)`;
}
/**
* Returns a badge acting as a link to a source repository for an app.
* @param {String} repo The repository url
*/
function repoLink(repo) {
const repoURL = new URL(repo);
let repoHost = path.basename(repoURL.hostname, path.extname(repoURL.hostname));
if (repoHost.includes(".")) repoHost = path.extname(repoHost).replace(".", "");
return `[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=${repoHost})](${repo})`;
}
/**
* Returns a badge displaying the number of GitHub Stars for a repository.
* @param {String} repo The repository url
*/
function starBadge(repo) {
if (repo.startsWith('https://github.com/')) {
const [user, repoName] = repo.split('github.com/')[1].split('/');
if (!repoName || repoName === '') return '';
return `![GitHub Repo stars](https://img.shields.io/github/stars/${user}/${repoName}?logo=github&style=flat-square)`;
} else return '';
}
/**
* Returns a badge displaying user for a Firefox addon/extension
* @param {String} link URL to extension WITHOUT trailing slash
*/
function addonLink(link) {
return (link.includes('addons.mozilla.org')) ? `![Mozilla Add-on](https://img.shields.io/amo/users/${link.split('/').pop()}?style=flat-square)` : '';
}
/**
* Returns a badge with the date of publication
* @param {String|Number} date Date of publication
*/
function dateBadge(date) {
return `![Published](https://img.shields.io/badge/${date.toString().replace(/\-/g, '--')}-informational?style=flat-square)`;
}
/**
* Generates a table with browser extensions and their descriptions
*/
function generateBrowserExtensions() {
return `# Browser extensions${EOL + EOL}| Name | Description |${EOL}| ---- | ----------- |${EOL}`
.concat(YAML.parse(fs.readFileSync(path.join(__dirname, 'yaml/browserExtensions.yml')).toString())
.map(({ name, text, url }) => `| [${name}](${url}) ${addonLink(url)} | ${text.trim()} |${EOL}`).join(''));
}
/**
* Generates sections for Books, Blogs, and News
* @param {String} pubTitle
* @param {String} filename
*/
function generatePublications(pubTitle, filename) {
return `## ${pubTitle} ${EOL + BACK_TO_TOP + EOL + EOL}| Title | Published | Author |${EOL}| ----- | --------- | ------ |${EOL}`
.concat(YAML.parse(fs.readFileSync(path.join(__dirname, `yaml/${filename}.yml`)).toString())
.map(({ title, url, date, author }) => `| [${title}](${url}) | ${dateBadge(date)} | ${author.trim()} |${EOL}`).join(''));
}
// ! Generate README.md
fs.writeFileSync(path.join(__dirname, 'README.md'), Object.values(BUILD_SECTION).map((section) => section()).join(`${EOL}${EOL}`));
console.log('Done!');

View File

@ -1,3 +0,0 @@
theme: jekyll-theme-minimal
logo: https://repository-images.githubusercontent.com/191201679/10394d00-968c-11ea-8879-4f06b3e59af5
show_downloads: false

107
_wiki.js
View File

@ -1,107 +0,0 @@
const fs = require('fs-extra'); // Reading README.md
const path = require('path'); // Get the correct path for README.md
const fetch = require('node-fetch'); // Make calls to Reddit from Node.js
const qs = require('qs'); // Properly build a query for node-fetch POST
const moment = require('moment'); // Time-related functions
//#region constants
// REDDIT_: For authentication with Reddit API. Oauth MUST be used. ID and Secret come from a "script" app type.
const REDDIT_USER = process.env.REDDIT_USER || 'username';
const REDDIT_PASS = process.env.REDDIT_PASS || 'password';
const REDDIT_CLIENT_ID = process.env.REDDIT_CLIENT_ID || 'clientid';
const REDDIT_CLIENT_SECRET = process.env.REDDIT_CLIENT_SECRET || 'clientsecret';
// Initial basic authorization for getting the Oauth token
const BASIC_AUTH = `Basic ${Buffer.from(REDDIT_CLIENT_ID + ':' + REDDIT_CLIENT_SECRET).toString('base64')}`;
// WIKI_: For the Reddit Wiki
const WIKI_SUBREDDIT = 'privacy';
const WIKI_PAGE = 'de-google';
const WIKI_REASON = 'Automated edit from GitHub repo: https://github.com/tycrek/degoogle';
// Endpoints for each of our fetches to Reddit
const ENDPOINTS = {
revisions: `https://old.reddit.com/r/${WIKI_SUBREDDIT}/wiki/revisions/${WIKI_PAGE}.json`,
token: 'https://www.reddit.com/api/v1/access_token',
edit: `https://oauth.reddit.com/r/${WIKI_SUBREDDIT}/api/wiki/edit`
};
// Helps POST data be submitted properly
const CONTENT_TYPE = 'application/x-www-form-urlencoded';
//#endregion
// Update the wiki
Promise.all([getLastRevision(), getToken()])
.then(([lastId, token]) => putWiki(lastId, token))
.catch((err) => (console.error(err), process.exit(1)));
//#region functions
/**
* Get the last revision ID on the Wiki. Required otherwise editing the wiki fails
*/
function getLastRevision() {
return new Promise((resolve, reject) =>
fetch(ENDPOINTS.revisions)
.then((response) => response.json())
.then((json) => json.data.children[0].id) // children[0] is the most recent edit
.then(resolve)
.catch(reject));
}
/**
* Gets an Oauth token used to edit the Wiki
*/
function getToken() {
return new Promise((resolve, reject) =>
fetch(ENDPOINTS.token, {
method: 'POST',
headers: { 'Authorization': BASIC_AUTH, 'Content-Type': CONTENT_TYPE },
body: qs.stringify({ grant_type: 'password', username: REDDIT_USER, password: REDDIT_PASS })
})
.then((response) => response.json())
.then(({ access_token }) => resolve(access_token))
.catch(reject));
}
/**
* Post the contents from the README into the wiki
* @param {String} lastId Revision ID for the Wiki
* @param {String} token Oauth token for authenticating with the Reddit API
*/
function putWiki(lastId, token) {
return new Promise((resolve, reject) =>
fetch(ENDPOINTS.edit, {
method: 'POST',
headers: { 'Authorization': `bearer ${token}`, 'Content-Type': CONTENT_TYPE },
body: qs.stringify({
content: fixContent(fs.readFileSync(path.join(__dirname, 'README.md')).toString()),
page: WIKI_PAGE,
reason: WIKI_REASON,
previous: lastId
})
})
.then((response) => response.json())
.then((json) => {
if (Object.keys(json).length === 0) resolve();
else throw Error(json);
})
.catch(reject));
}
/**
* Fixes certain images to only show text on the Reddit wiki
* @param {String} content The content in README.md
*/
function fixContent(content) {
// Fix updated timestamp
content = content.replace(/\!\[Updated\](.*?)square\)/g, `#### Updated: ${moment().format('MMMM Do YYYY')}`);
// Fix published timestamps
content = content.replace(/\!\[Published\]\(https\:\/\/img\.shields\.io\/badge\//g, '**');
content = content.replace(/-informational\?style=flat-square\)/g, '**');
return content;
} // * If this is highlighted weirdly, it's because of the 'updated timestamp' regex, don't worry about it
//#endregion

View File

@ -1,11 +0,0 @@
# Closing remarks
It's a shame that Google, with their immense resources, power, and influence, don't see the benefits of helping people secure themselves online. Instead, they force people like us to scour the web for alternatives and convince our friends and family to do the same, while they sell off our data to the highest bidder.
Hopefully this guide can serve as a starting point for those new to privacy, or be a good refresher for the experts.
Good luck and stay safe!
## Stargazers over time
[![Stargazers over time](https://starchart.cc/tycrek/degoogle.svg)](https://starchart.cc/tycrek/degoogle)

View File

@ -1,12 +0,0 @@
# Contributing
If you want to help out with the project, here are some ideas (submit **Issues** & **Pull Requests** on the [GitHub page](https://github.com/tycrek/degoogle)):
- **iOS app alternatives!** I don't have an iOS device to find alternatives with. I would highly appreciate any help with this.
- Clean up/improve the Markdown.
- Provide more information on services with little info or where *help requested!* is shown.
- Suggest new services or provide info for removing existing services.
- Host a mirror or clone the [repo](https://github.com/tycrek/degoogle). If you host a mirror, let me know and I can add it to the mirrors list.
- Anything else relating to any part of this guide, whether it's Google related or not.
When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https://github.com/tycrek/degoogle/blob/master/CONTRIBUTING.md)**.

View File

@ -1,18 +0,0 @@
# Replacements/alternatives
### *Disclaimer*
1. Only **privacy/security** focused alternatives will be suggested.
2. Many replacements are based off [this Wikipedia article (List of Google products)][wiki]
3. Products from companies such as Microsoft, Apple, Yahoo, Amazon, etc. will *not* be recommended unless there is a very good reason to. This includes companies/apps/services they own.
4. Controversial services will have a disclaimer attached if needed.
5. [5-eyes, 9-eyes, and 14-eyes][eyes] services will be listed and marked as such. Both the location the company is registered and the server IP are taken into consideration.
| Eyes | Countries |
| :--: | :---------: |
| **5** | Australia, Canada, New Zealand, UK, USA |
| **9** | Denmark, France, Netherlands, Norway |
| **14** | Germany, Belgium, Italy, Sweden, Spain |
[wiki]: https://en.wikipedia.org/wiki/List_of_Google_products
[eyes]: https://restoreprivacy.com/5-eyes-9-eyes-14-eyes/#h-five-eyes

View File

@ -1,28 +0,0 @@
[//]: # (NOTE: Please do NOT directly edit this file! Instead, edit)
[//]: # (either degoogle.yml or any Markdown file in the md/ directory)
# Cutting Google out of your life
### *I don't have anything to hide, but I don't have anything to show you either.*
![Updated](https://img.shields.io/static/v1?label=updated&message={{DATE}}&color=388E3C&style=flat-square)
![GitHub](https://img.shields.io/github/license/tycrek/degoogle?style=flat-square)
![GitHub stars](https://img.shields.io/github/stars/tycrek/degoogle?style=flat-square)
![GitHub issues](https://img.shields.io/github/issues/tycrek/degoogle?style=flat-square)
![GitHub pull requests](https://img.shields.io/github/issues-pr/tycrek/degoogle?style=flat-square)

View File

@ -1,18 +0,0 @@
# Index
1. [Contributing](#contributing)
2. [Browser extensions](#browser-extensions)
3. **[Replacements/alternatives](#replacementsalternatives)**
1. [Disclaimer](#disclaimer)
2. [Web-based products](#web-based-products)
3. [Operating systems](#operating-systems)
4. [Desktop applications](#desktop-apps)
5. [Mobile applications](#mobile-apps)
6. [Hardware](#hardware)
4. [Useful links, tools, and advice](#useful-links-tools-and-advice)
1. [Resources](#resources)
1. [Books](#books)
1. [Blog posts](#blog-posts)
1. [News articles](#news-articles)
5. [The lighter side](#the-lighter-side)
6. [Closing remarks](#closing-remarks)

View File

@ -1,18 +0,0 @@
# The lighter side
- Movies & TV:
- *Snowden (2016)* - Based on the true story of Edward Snowden, the CIA/NSA/etc whistleblower. Directed by Oliver Stone.
- *Deep Web (2015)* - Documentary (narrated by Keanu Reeves) about Ross Ulbricht aka. Dread Pirate Roberts and the infamous "Silk Road" dark market. Directed by Alex Winter.
- *The Great Hack (2019)* - Documentary about the FacebookCambridge Analytica data scandal. Thanks @woutfeys
- *Mr. Robot* - Hacker-drama starring Rami Malek. Producers hired actual hackers as consultants to ensure the show is as accurate as possible; real-world tools used in the show.
- *Silicon Valley* - Satirical tech comedy about a compression startup struggling to take off in Silicon Valley, California.
- *Shoshana Zuboff on surveillance capitalism | VPRO Documentary* - [Invidious instance](https://yewtu.be/watch?v=hIXhnWUmMvw) and [Hooktube](https://hooktube.com/watch?v=hIXhnWUmMvw)
- Podcasts:
- [Darknet Diaries](https://darknetdiaries.com/) (by Jack Rhysider) - Highlights real-life hackers and their stories. Covers privacy topics a fair bit.
- [The WAN Show](https://youtube.com/playlist?list=PL8mG-RkN2uTw7PhlnAr4pZZz2QubIbujH) (Linus Tech Tips) - Not specifically privacy, but they cover all sorts of tech news.
- [The Privacy, Security, & OSINT Show](https://inteltechniques.com/podcast.html) - "This weekly podcast presents ideas to help you become digitally invisible, stay secure from cyber threats, and make you a better online investigator."
- [Security Now!](https://www.grc.com/SecurityNow.htm) - "TechTV's Leo Laporte and I spend somewhat shy of two hours each week to discuss important issues of personal computer security." (Thanks u/Abaddon182)
- [Surveillance Report](https://surveillancereport.tech/) - "Weekly security and privacy news - Presented by Techlore & The New Oil "
- Other:
- [xkcd](https://xkcd.com/) - They have comics for *everything*.
- System32 Comics [Instagram](https://www.instagram.com/system32comics/) and [Reddit](https://www.reddit.com/r/System32Comics/) - Comedic computer comics.

View File

@ -1,58 +0,0 @@
## Resources
Everything you need to become a privacy wizard. This section has two subsections: The first has links with self-explanatory titles, the second has more detailed descriptions.
#### Subsection 1
- [Android Privacy Guide - Take Control Of Your Data (GitLab)](https://gitlab.com/Attedz/AndroidPrivacyGuide)
- [DuckDuckGo's privacy newsletter](https://duckduckgo.com/newsletter)
- [EFF's Surveillance Self-Defense (eff.org)](https://ssd.eff.org/)
- [Everything You Need to Know About Password Managers](https://outline.com/NC69FD)
- [Firefox: Privacy Related "about:config" Tweaks](https://privacyguides.org/browsers/#about_config)
- [Four Methods to Create a Secure Password You'll Actually Remember](https://outline.com/XuMTFA)
- [How to create a strong password (and remember it)](https://outline.com/dqfuqL)
- [How to delete remembered passwords (WikiHow)](http://www.wikihow.com/Delete-Remembered-Passwords)
- [How to disable Telemetry and Data Collection in Windows 10 (Winaero)](https://winaero.com/blog/how-to-disable-telemetry-and-data-collection-in-windows-10/)
- [How to permanently delete a Facebook account (Delete Facebook)](https://deletefacebook.com/).
- [How to permanently delete a Facebook account (WikiHow)](https://www.wikihow.com/Permanently-Delete-a-Facebook-Account)
- [HTTP vs. HTTPS: What's the Difference and Why Should You Care? (Entrepreneur)](https://www.entrepreneur.com/article/281633)
- [Linux workstation security checklist (GitHub)](https://github.com/lfit/itpol/blob/master/linux-workstation-security.md)
- [Manage Windows 10 Telemetry and Data Collection settings (The Windows Club)](https://www.thewindowsclub.com/windows-10-telemetry)
- [Multi-factor authentication (Wikipedia)](https://en.wikipedia.org/wiki/Multi-factor_authentication)
- [Remove bloatware from Android without root (XDA)](https://www.xda-developers.com/uninstall-carrier-oem-bloatware-without-root-access/)
- [Spread Privacy - The Official DuckDuckGo Blog](https://spreadprivacy.com/)
- [The what, why, and when of multi-factor authentication (MFA)](https://outline.com/8gL8ZG)
- [They Track You: A website to raise awareness of online privacy (TheyTrackYou.com)](https://theytrackyou.com/)
- [user.js - Firefox configuration hardening (GitHub)](https://github.com/pyllyukko/user.js)
- [What are 5-eyes, 9-eyes, and 14-eyes? (RestorePrivacy)](https://restoreprivacy.com/5-eyes-9-eyes-14-eyes/)
- [What is GDPR and how will it affect you? (Outline/The Guardian)](https://outline.com/exmSpf)
- [What is GDPR? Everything you need to know about the new EU data laws (Outline/TechRadar)](https://outline.com/6sjd76)
- [What is Tor and should I use it?](https://outline.com/JRCscH)
- [Why You Really Should Put Tape Over Your Webcam](https://outline.com/fYCu98)
- [Windows 10 Privacy Guide (fdossena.com)](https://fdossena.com/?p=w10debotnet/index_1903.frag)
- [7 Reasons to Use a Third-Party DNS Service](https://outline.com/8jsWXw)
- Use [DNSPerf](https://www.dnsperf.com/#!dns-resolvers) to see which one is fastest for you.
#### Subsection 2
- [AlternativeTo](https://alternativeto.net/) is a free service that helps you find better alternatives to the products you love and hate. Used extensively to build this guide.
- [block-all-google.sh](https://github.com/wesaphzt/block-all-google) is a script for blocking everything Google at the network level. This can and probably will break other alternatives that rely on Google to serve content.
- [Databunker](https://databunker.org/) is a network-based, self-hosted, GDPR compliant, secure database for personal data or PII.
- [ethical.net](https://ethical.net/) is a not-for-profit project building a collaborative, online directory of ethical companies of all kinds.
- [Firefox Profilemaker](https://ffprofile.com/) is a tool to help you create a Firefox profile with the defaults you like.
- [Fix Windows Privacy](https://modzero.github.io/fix-windows-privacy/) is a tool to disable privacy breaches on Windows 10.
- [Framasoft](https://framasoft.org/en/) is a collection of alternative software. Too many to fit elsewhere in the list.
- [Go Incognito](https://techlore.tech/goincognito.html) A guide to security, privacy, and anominity.
- [Go FOSS](https://www.gofoss.today/) is a guide on ditching big-tech, with a focus on seven core areas.
- [Hybrid Analysis](https://www.hybrid-analysis.com/) a free malware analysis service for the community that detects and analyzes unknown threats using a unique Hybrid Analysis technology. Powered by [Falcon Sandbox](https://www.crowdstrike.com/endpoint-security-products/falcon-sandbox-malware-analysis/), which is developed by [CrowdStrike](https://www.crowdstrike.com/).
- [Outline](https://outline.com/) is an awesome tool for getting all the junk out of news articles (I've used it a few times in this guide already). Sometimes it can get around paywalls for "premium" news sites.
- [Plexus](https://plexus.techlore.tech/) Plexus is a website where you can check andriod app compatibility with microg or no google services. It is a crowdsourced project where people test an app's compatibility in those environments and then sumbit it to the database.
- [PRISM Break](https://prism-break.org/en/) is a guide on how to opt out of global data surveillance programs like PRISM, XKeyscore and Tempora.
- [Privacy Guides](https://privacyguides.org/) provides services, tools and knowledge to protect your privacy against global mass surveillance.
- [retiolus/privacysec](https://github.com/retiolus/privacysec) is a collective guide built off the data of other guides, including this one, whose aim is to be translated into as many languages as possible.
- [r/Privacy wiki](https://old.reddit.com/r/privacy/wiki/index) has a lot of useful information. This guide also automatically mirrors itself to the wiki!
- [r/VPN wiki](https://old.reddit.com/r/VPN/wiki/index) to learn more about why you should consider using a VPN.
- [Switching.software](https://switching.software/) is a collection of ethical, easy-to-use and privacy-conscious alternatives to well-known software.
- [VirusTotal](https://www.virustotal.com/) lets you upload files and scans them against multiple antivirus programs at once. Very helpful for checking false negatives. Be aware that Alphabet Inc owns VirusTotal.
- [VPN Toolkit](https://techlore.tech/vpn.html) Community driven tools for VPNs. Includes a VPN finder, chart, and other useful imformation.
- [WindowsSpyBlocker (GitHub)](https://github.com/crazy-max/WindowsSpyBlocker) is a tool to block spying and tracking on Windows.

288
package-lock.json generated
View File

@ -1,288 +0,0 @@
{
"name": "degoogle",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"fs-extra": "^9.0.0",
"moment": "^2.26.0",
"node-fetch": "^2.6.1",
"qs": "^6.9.4",
"yaml": "^1.10.0"
}
},
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dependencies": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dependencies": {
"function-bind": "^1.1.1"
},
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/has-symbols": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/moment": {
"version": "2.29.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
"engines": {
"node": "*"
}
},
"node_modules/node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
"engines": {
"node": "4.x || >=6.0.0"
}
},
"node_modules/object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/qs": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
"dependencies": {
"side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"engines": {
"node": ">= 6"
}
}
},
"dependencies": {
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
},
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"requires": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1"
}
},
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
"function-bind": "^1.1.1"
}
},
"has-symbols": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
},
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
},
"object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
},
"qs": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
"requires": {
"side-channel": "^1.0.4"
}
},
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
},
"yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
}
}
}

View File

@ -1,21 +0,0 @@
{
"name": "degoogle",
"version": "1.0.0",
"description": "A huge list of alternatives to Google products. Privacy tips, tricks, and links.",
"main": "_build.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": "github:tycrek/degoogle",
"author": "tycrek <t@tycrek.com> (https://tycrek.com/)",
"license": "ISC",
"bugs": "https://github.com/tycrek/degoogle/issues",
"homepage": "https://github.com/tycrek/degoogle#readme",
"dependencies": {
"fs-extra": "^9.0.0",
"moment": "^2.26.0",
"node-fetch": "^2.6.1",
"qs": "^6.9.4",
"yaml": "^1.10.0"
}
}

View File

@ -1,12 +0,0 @@
- title: Google Chromes users take a back seat to its bottom line
url: https://www.eff.org/deeplinks/2018/11/google-chromes-users-take-back-seat-its-bottom-line
author: Bennett Cyphers and Mitch Stoltz - EFF
date: 2018-11-01
- title: Quitting Facebook & Google
url: https://medium.com/@natematias/https-medium-com-natematias-quitting-facebook-google-aaf8f4c80fbf
author: J. Nathan Matias
date: 2018-12-08
- title: How to fight back against Google AMP as a web user and a web developer
url: https://markosaric.com/google-amp/
author: Marko Saric
date: 2019-12-05

View File

@ -1,24 +0,0 @@
- title: Permanent Record
url: https://www.goodreads.com/book/show/46223297-permanent-record
author: Edward Snowden
date: 2019
- title: Ten Arguments for Deleting Your Social Media Accounts Right Now
url: http://www.jaronlanier.com/tenarguments.html
author: Jaron Lanier
date: 2018
- title: The Age of Surveillance Capitalism
url: https://www.publicaffairsbooks.com/titles/shoshana-zuboff/the-age-of-surveillance-capitalism/9781610395694/
author: Shoshana Zuboff
date: 2019
- title: The Attention Merchants
url: http://www.timwu.org/AttentionMerchants.html
author: Tim Wu
date: 2016
- title: Zucked
url: https://www.zuckedbook.com/
author: Roger McNamee
date: 2019
- title: Privacy Is Power
url: https://www.penguin.co.uk/books/1120394/privacy-is-power/9780552177719.html
author: Carissa Véliz
date: 2021

View File

@ -1,88 +0,0 @@
- name: uBlock Origin
url: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin
text: |
uBlock Origin is not an "ad blocker", it's a wide-spectrum content blocker with CPU and memory efficiency as a primary feature.
- name: Privacy Badger
url: https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17
text: |
Privacy Badger automatically learns to block invisible trackers. Instead of keeping lists of what to block, Privacy Badger learns by watching which domains appear to be tracking you as you browse the Web.
- name: HTTPS Everywhere
url: https://addons.mozilla.org/en-US/firefox/addon/https-everywhere
text: |
Many sites on the web offer some limited support for encryption over HTTPS, but make it difficult to use. For instance, they may default to unencrypted HTTP, or fill encrypted pages with links that go back to the unencrypted site. The HTTPS Everywhere extension fixes these problems by rewriting all requests to these sites to HTTPS. Note: EFF is preparing to deprecate the HTTPS Everywhere, check out this [blog post](https://www.eff.org/deeplinks/2021/09/https-actually-everywhere).
- name: Cookie AutoDelete
url: https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete
text: |
Control your cookies! This WebExtension is inspired by Self Destructing Cookies. When a tab closes, any cookies not being used are automatically deleted. Whitelist the ones you trust while deleting the rest. Support for Container Tabs.
- name: DDG Privacy Essentials
url: https://addons.mozilla.org/en-US/firefox/addon/duckduckgo-for-firefox
text: |
Privacy, simplified. Our add-on provides the privacy essentials you need to seamlessly take control of your personal information, no matter where the internet takes you: tracker blocking, smarter encryption, DuckDuckGo private search, and more.
- name: I don't care about cookies
url: https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-about-cookies
text: |
This add-on will remove cookie warnings from almost all websites! You can report any website which still warns you about cookies: make a right click and choose 'Report a cookie warning' from the menu.
- name: minerBlock
url: https://addons.mozilla.org/en-US/firefox/addon/minerblock-origin
text: |
MinerBlock is an efficient browser extension that focuses on blocking browser-based cryptocurrency miners all over the web. This extension uses two different approaches to block miners. The first one is based on blocking requests/scripts loaded from a blacklist, this is the traditional approach adopted by most ad-blockers and other mining blockers. The other approach which makes MinerBlock more efficient against cryptojacking is detecting potential mining behavior inside loaded scripts and kills them immediately. This makes the extension able to block inline scripts as well as miners running through proxies. Source code available on [GitHub](https://github.com/xd4rker/MinerBlock).
- name: ClearURLS
url: https://addons.mozilla.org/en-US/firefox/addon/clearurls
text: |
This extension will automatically remove tracking elements from URLs to help protect your privacy when browse through the Internet.
- name: Cloud Firewall
url: https://addons.mozilla.org/en-US/firefox/addon/cloud-firewall
text: |
Block connections to pages and web resources hosted in major cloud services if the user wishes to do so. Supports blocking Google, Amazon, Facebook, Apple, Microsoft and Cloudflare.
- name: CSS Exfil Protection
url: https://addons.mozilla.org/en-US/firefox/addon/css-exfil-protection
text: |
CSS Exfil is a method attackers can use to steal data from web pages using Cascading Style Sheets (CSS). This plugin sanitizes and blocks any CSS rules which may be designed to steal data.
- name: Disconnect
url: https://addons.mozilla.org/en-US/firefox/addon/disconnect
text: |
Visualize and block the otherwise invisible websites that track your search and browsing history.
- name: Firefox Multi-Account Containers
url: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers
text: |
Firefox Multi-Account Containers lets you keep parts of your online life separated into color-coded tabs that preserve your privacy. Cookies are separated by container, allowing you to use the web with multiple identities or accounts simultaneously.
- name: Google search link fix (also Yandex)
url: https://addons.mozilla.org/en-US/firefox/addon/google-search-link-fix
text: |
This extension prevents Google and Yandex search pages from modifying search result links when you click them. This is useful when copying links but it also helps privacy by preventing the search engines from recording your clicks.
- name: HTTPZ
url: https://addons.mozilla.org/en-US/firefox/addon/httpz
text: |
HTTPZ is meant to be unobtrusive and lightweight, it respects your privacy, and is free of trans fats. Additionally, it is very configurable, and should be slightly more secure than some of the alternatives out there, since it has a couple of built-in defenses against SSL-stripping attacks.
- name: Link Cleaner
url: https://addons.mozilla.org/en-US/firefox/addon/link-cleaner
text: |
Clean URLs that are about to be visited: removes utm_* parameters; on item pages of aliexpress and amazon, removes tracking parameters; skip redirect pages of facebook, steam and reddit
- name: Privacy-Oriented Origin Policy
url: https://addons.mozilla.org/en-US/firefox/addon/privacy-oriented-origin-policy
text: |
Prevent Firefox from sending Origin headers when they are least likely to be necessary, to protect your privacy.
- name: Skip Redirect
url: https://addons.mozilla.org/en-US/firefox/addon/skip-redirect
text: |
Some web pages use intermediary pages before redirecting to a final page. This add-on tries to extract the final url from the intermediary url and goes there straight away if successful.
- name: Temporary Containers
url: https://addons.mozilla.org/en-US/firefox/addon/temporary-containers
text: |
Open tabs, websites, and links in automatically managed disposable containers. Containers isolate data websites store (cookies, storage, and more) from each other, enhancing your privacy and security while you browse.
- name: TrackMeNot
url: https://addons.mozilla.org/en-US/firefox/addon/trackmenot
text: |
An artware browser add-on to protect privacy in web-search. By issuing randomized queries to common search-engines, TrackMeNot obfuscates your search profile and registers your discontent with surreptitious tracking.
- name: Redirect AMP to HTML
url: https://addons.mozilla.org/en-US/firefox/addon/amp2html
text: |
This web extension enables users to choose to opt-out of using Accelerated Mobile Pages (AMP) and choose to use the standard web instead.
- name: user.js
url: https://github.com/arkenfox/user.js
text: |
This is not an extension, instead it is a Firefox `user.js` config file. This file is a template which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
- name: Port Authority
url: https://addons.mozilla.org/en-US/firefox/addon/port-authority/
text: |
Blocks websites from using javascript to port scan your computer/network and dynamically blocks all LexisNexis endpoints from running their invasive data collection scripts. [Website](https://www.g666gle.me/Port-Authority/), [Source Code](https://github.com/ACK-J/Port_Authority)

File diff suppressed because it is too large Load Diff

View File

@ -1,80 +0,0 @@
- title: Google Can Survive Too Much Innovation. You Can't.
url: https://outline.com/pwWc6B
author: Robert Sher - Forbes
date: 2012-05-15
- title: The truth about Google's famous '20% time' policy
url: https://outline.com/SmyHJW
author: Jillian D'Onfro - Business Insider
date: 2015-04-17
- title: The Binge Breaker
url: https://outline.com/EmHWna
author: Bianca Bosker - The Atlantic
date: 2016-11-01
- title: How Malware Keeps Sneaking Past Google Plays Defenses
url: https://outline.com/2mAwU7
author: Lily Hay Newman - WIRED
date: 2017-09-22
- title: Forget Killer Robots — Bias Is the Real AI Danger
url: https://outline.com/VqaaUD
author: Will Knight - MIT Technology Review
date: 2017-10-03
- title: Google managers kept blacklists of conservative employees and one manager considered holding 'trials,' a new lawsuit alleges
url: https://outline.com/NMrzg2
author: Julie Bort - Business Insider
date: 2018-01-08
- title: A longtime Google engineer quits, saying the company is 100% competitor-focused and can no longer innovate
url: https://outline.com/WfF8DP
author: Jillian D'Onfro - CNBC
date: 2018-01-24
- title: Facebook and Google are doomed, George Soros says
url: https://outline.com/GTMKNM
author: Hamza Shaban - Washington Post
date: 2018-01-26
- title: Google Isn't Listening, So Its Employees Are Suing
url: https://outline.com/9awE8Z
author: Kate Conger - Gizmodo
date: 2018-03-26
- title: Google sees major claims of harassment and discrimination as lawsuits proceed
url: https://outline.com/NcxRr3
author: Sam Levin - The Guardian
date: 2018-03-28
- title: How to stop Google from tracking everything you do online
url: https://outline.com/uez3G5
author: Todd Haselton - CNBC
date: 2018-05-11
- title: Google will always do evil
url: https://outline.com/YhAP7C
author: Jessica Conditt - Engadget
date: 2018-05-24
- title: Googles new AI principles forbid its use in weapons and human rights violations
url: https://outline.com/NjBrf9
author: Devin Coldewey - TechCrunch
date: 2018-06-07
- title: Google Plans to Launch Censored Search Engine in China, Leaked Documents Reveal
url: https://outline.com/dXrdLr
author: Ryan Gallagher - The Intercept
date: 2018-08-01
- title: Googles China plan isnt just evil — its bad for business
url: https://outline.com/VRAxTZ
author: Josh Rogin - Washington Post
date: 2018-08-09
- title: How Google Protected Andy Rubin, the Father of Android
url: https://outline.com/4Ua6SY
author: Daisuke Wakabayashi and Katie Benner - New York Times
date: 2018-10-25
- title: A New Google+ Blunder Exposed Data From 52.5 Million Users
url: https://outline.com/w7Gxux
author: Lily Hay Newman - WIRED
date: 2018-12-10
- title: Three Years of Misery Inside Google, the Happiest Company in Tech
url: https://outline.com/XUCRBr
author: Nitasha Tiku - WIRED
date: 2019-08-13
- title: Googles latest user-hostile design change makes ads and search results look identical
url: https://outline.com/utGbnh
author: Natasha Lomas - TechCrunch
date: 2020-01-23
- title: You Are Now Remotely Controlled
url: https://outline.com/uzKKcq
author: Shoshana Zuboff - New York Times
date: 2020-01-24