Mitwirken
Alles geschieht auf GitHub. Es gibt kein anderes Forum, keinen Chat und kein Konto, für das man sich registrieren muss.
| Vorhaben | Weg |
|---|---|
| Eine App oder einen Dienst vorschlagen | Ein „Suggest“-Issue eröffnen |
| Eine falsche Antwort oder einen defekten Link melden | Ein „Correction“-Issue eröffnen oder auf einer beliebigen Bewertungsseite „Korrektur melden“ verwenden |
| Kriterien vorschlagen oder ändern | Ein „Criteria change“-Issue eröffnen |
| Selbst korrigieren | Auf einer beliebigen Bewertungsseite „Auf GitHub bearbeiten“ verwenden oder einen Pull-Request eröffnen |
| Eine Frage stellen oder über eine Empfehlung diskutieren | GitHub Discussions |
Eine Bewertung bearbeiten
Jede App und jeder Dienst ist eine Markdown-Datei in ratings/<category>/<name>.md. Der Anfang der Datei ist YAML. Alles darunter sind optionale Markdown-Anmerkungen, die auf der Seite angezeigt werden.
---
name: Example Mail
description: >-
One or two plain sentences about what it is.
website: https://example.com
source: https://github.com/example/example # optional
platforms: [web, android, ios] # optional
jurisdiction: CH # optional, country code from jurisdictions.yml
mainstream: true # optional, adds an "alternatives to" page
aliases: [Example Office, Example Docs] # optional, other names people search for
also_in: [macos-hardening] # optional, also list it in another category's table
alternatives_page: true # optional, adds an "alternatives to" page without mainstream
domain: mail.example.com # services only, used for automated tests
mail_domain: example.com # email categories only
imap_host: imap.example.com # email providers only; false if not offered
pop3_host: pop3.example.com # optional, found from SRV records when missing
smtp_host: smtp.example.com # optional, found from SRV records when missing
criteria:
open_source:
answer: partial
evidence: https://github.com/example/example/blob/main/LICENSE
note: Apps are open source. The server is not.
no_ads:
answer: yes
evidence: https://example.com/pricing
---
Optional notes in Markdown.
Regeln (automatisch geprüft durch npm test):
answerist eines vonyes,partial,no,unknownodern/a.yesundpartialbrauchen einenevidence-Link.nobraucht einenoteoderevidence.- Belege müssen Primärquellen sein: offizielle Dokumentation, Quellcode, eine Lizenzdatei, ein Auditbericht oder ein reproduzierbarer Test. Keine Rezensionen, Forenbeiträge oder Marketingseiten ohne Details.
- Links müssen
https://verwenden und dürfen keine Empfehlungs- oder Tracking-Parameter enthalten. - Automatische Kriterien (
tls,security_headers,web_standards,mail_standards,imap_standards,pop3_standards,smtp_standards,transport_security) werden durch Tests ausgefüllt. Nicht von Hand setzen. no_trackerswird außerdem durch den Tracker-Test geprüft. Lädt die Startseite einen Drittanbieter-Tracker, wird die Antwort „no“, unabhängig davon, was in der Datei steht.- Kriterien ohne Belege weglassen. Sie zählen als
unknown. jurisdictionist der Ort, an dem das Unternehmen rechtlich ansässig ist (nicht der Standort seiner Server). Fehlt ein Land, injurisdictions.ymlergänzen. Jede Anmerkung dort braucht eine Quelle.- Nur Maintainer fügen
pick,pick_reasonunddisclosurehinzu. Mitpick: 1undpick: 2werden zwei Empfehlungen geordnet. Siehe GOVERNANCE.md. imported_namebewahrt den Namen, den ein Eintrag in Awesome Privacy hatte, nachdem er umbenannt wurde, damit der monatliche Import ihn nicht erneut hinzufügt. Um einen Awesome-Privacy-Eintrag dauerhaft auszuschließen, ihn mit Begründung inimport-skip.ymleintragen.
Die Kriterien für jede Kategorie und die Bedeutung jeder Antwort stehen in criteria/ und auf der Kriterienseite.
Eine App oder einen Dienst hinzufügen
npm ci
npm run new -- vpns "Example VPN" https://example.com
Dies erstellt eine Datei, die jedes Kriterium als unknown auflistet. Ausfüllen, was sich belegen lässt, den Rest löschen und dann npm test ausführen.
Schreibstil
- Klare, neutrale Sprache. Beschreiben, was etwas tut, nicht wie großartig es ist.
- Kurze Sätze. Beschreibungen bleiben unter 300 Zeichen.
- Keine erste Person, keine Datumsangaben im Fließtext, keine Werbeaussagen.
- Dinge so benennen, wie der Hersteller es tut.
Die Website lokal ausführen
Erfordert Node.js 18 oder neuer.
npm ci
npm test # validate data and build the site
npm run serve # preview at http://localhost:8080
Eine Seite hinzufügen
Eine Markdown-Datei mit title und description in pages/ ablegen. Sie wird unter /<file-name>/ veröffentlicht, mit einer Markdown-Kopie, strukturierten Daten und einem Sitemap-Eintrag.
Eine Kategorie oder ein Kriterium hinzufügen
- Die Kategorie in
categories.ymlunter der passenden Gruppe hinzufügen. - Optional
criteria/<category-id>.ymlmit kategoriespezifischen Kriterien hinzufügen. Das Format aus einer bestehenden Datei übernehmen. ratings/<category-id>/anlegen und Einträge hinzufügen.- Änderungen an Kriterien folgen den Prüfregeln in GOVERNANCE.md.
Übersetzungen
Die Website erscheint in 25 Sprachen. Englisch ist die Quelle, jede andere Sprache liegt in i18n/<code>/:
| Datei | Enthält |
|---|---|
ui.json |
Oberflächentexte: Überschriften, Schaltflächen und Sätze mit {placeholders} |
data.json |
Kategorienamen, Kriterien, Ratgeber und Länderhinweise |
entries.json |
Bewertungsbeschreibungen, Begründungen für Empfehlungen und Offenlegungen |
pages/*.md |
Ganze Dokumente wie dieses |
Jede JSON-Datei ordnet dem englischen Text seine Übersetzung zu. Ändert sich der englische Text, passt die alte Übersetzung nicht mehr, und der englische Text erscheint, bis jemand den neuen Text übersetzt. Veraltetes wird nie angezeigt.
npm run buildausführen. Der Befehl schreibt die aktuellen englischen Listen nachi18n/source/.npm run i18n:checkausführen, um zu sehen, was in jeder Sprache fehlt, odernode scripts/i18n-check.js de uifür die Details einer Sprache und Datei.- Übersetzungen hinzufügen oder korrigieren und dabei jeden
{placeholder}genau so belassen, wie er ist. - Für ein Dokument den englischen Text aus
i18n/source/pages/kopieren, die erste Zeile (<!-- source: … -->, die die Übersetzung an diese Version des englischen Textes bindet) beibehalten und den Rest übersetzen.
Hinweise und Belege zu einzelnen Antworten bleiben auf Englisch. Vergleiche und die meisten einzelnen Bewertungen gibt es nur auf Englisch; Empfehlungen, Kategorien, Ratgeber, Alternativen, Open-Source-Listen, Rechtsräume und Dokumente werden übersetzt. Das Sprachmenü und die automatische Weiterleitung nutzen die hreflang-Links auf jeder Seite.
Checkliste für Pull-Requests
-
npm testläuft erfolgreich durch. - Jede geänderte Antwort verlinkt auf Belege.
- Wer für einen geänderten Dienst arbeitet oder mit ihm verbunden ist, hat dies im Pull-Request angegeben.