feat: the hook prober, and the list becomes the front door
Christian: 'drop any URL and say tell me where Big Tech has its hooks... we're
not just rating software, we're rating software as a service.'
db/hooks/probe.mjs answers that from public records only: DNS, MX, SPF, ASN via
Team Cymru, HTTP headers, and the third-party hosts named in the page's own HTML.
Nothing is scanned. If a site tells the world it sends mail through Google, this
reads it.
Verified live, 2026-10-29:
parler.com -> AS16509 AMAZON, plus Microsoft email, plus Vercel
netflix.com -> AS40027 NETFLIX (their own Open Connect edge), NOT AWS
signal.org -> Cloudflare CDN, Google touchpoints
bigtech.sucks-> AS16509 AMAZON (GoDaddy parking sits on AWS)
That netflix result is the important one. The front door is Netflix's own network;
the catalog and user data are in AWS. Edge ASN is not backend custody, and the tool
says so in its own header comment rather than pretending otherwise.
Also:
- The list is now the front door (public/index.html, generated from the DB).
The game moved to /game.html and keeps working, ready for its own subdomain.
- suggestion table + v_requested view: anyone can ask for a product to be rated,
no account, no email. Optional contact. Addresses are salted-hashed, never stored.
- POST /api/suggest on the existing server package, with a graceful fallback on the
static page to a Forgejo issue so requests are never lost when the server is down.
2026-10-29 17:23:11 -05:00
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="en"><head><meta charset="utf-8"/>
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
|
|
|
<title>The software rating list — BigTech.sucks</title>
|
|
|
|
|
<style>
|
|
|
|
|
:root{--ink:#0d0f0e;--bone:#e8e2d4;--dim:#8a8272;--amber:#d9a441;--good:#7fae7a;--bad:#c9563f;--rule:#2a2d2a}
|
|
|
|
|
*{box-sizing:border-box}
|
|
|
|
|
body{margin:0;padding:3rem 1.25rem 7rem;background:var(--ink);color:var(--bone);
|
|
|
|
|
font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:15px;line-height:1.7;
|
|
|
|
|
-webkit-font-smoothing:antialiased}
|
|
|
|
|
.wrap{max-width:58rem;margin:0 auto}
|
|
|
|
|
nav{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:3rem;display:flex;gap:1.5rem;flex-wrap:wrap}
|
|
|
|
|
nav a{color:var(--dim);text-decoration:none;border-bottom:1px solid transparent}
|
|
|
|
|
nav a:hover{color:var(--amber);border-bottom-color:var(--amber)}
|
|
|
|
|
h1{font-size:clamp(1.3rem,3.6vw,2.1rem);font-weight:400;line-height:1.2;margin:0 0 .6rem;letter-spacing:-.01em}
|
|
|
|
|
h2{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);font-weight:400;
|
|
|
|
|
margin:3.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}
|
|
|
|
|
.sub{color:var(--dim);font-size:.85rem;margin:0 0 2.5rem}
|
|
|
|
|
.score{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:0 0 .5rem}
|
|
|
|
|
.score .n{font-size:clamp(2.6rem,9vw,4.4rem);line-height:1;color:var(--amber);letter-spacing:-.03em}
|
|
|
|
|
.score .g{font-size:1rem;color:var(--dim);letter-spacing:.2em}
|
|
|
|
|
.lede{font-size:1.02rem;margin:1.5rem 0 0;padding-left:1rem;border-left:2px solid var(--amber);color:var(--bone)}
|
|
|
|
|
table{width:100%;border-collapse:collapse;font-size:.84rem;margin:0}
|
|
|
|
|
th{text-align:left;color:var(--dim);font-weight:400;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
|
|
|
|
|
padding:.5rem .6rem;border-bottom:1px solid var(--rule)}
|
|
|
|
|
td{padding:.55rem .6rem;border-bottom:1px solid #1b1e1b;vertical-align:top}
|
|
|
|
|
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
|
|
|
|
|
.bar{display:inline-block;height:7px;background:var(--amber);vertical-align:middle;border-radius:1px}
|
|
|
|
|
.bar.low{background:var(--bad)}
|
|
|
|
|
.weak td{background:rgba(201,86,63,.07)}
|
|
|
|
|
tr.cathead td{background:#151815;color:var(--dim);font-size:.7rem;letter-spacing:.18em;
|
|
|
|
|
text-transform:uppercase;padding:.9rem .6rem .45rem;border-bottom:1px solid var(--rule)}
|
|
|
|
|
.sev{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;padding:.1rem .4rem;border:1px solid var(--rule)}
|
|
|
|
|
.sev.high{border-color:var(--bad);color:var(--bad)}
|
|
|
|
|
.sev.medium{border-color:var(--amber);color:var(--amber)}
|
|
|
|
|
.sev.low,.sev.info{color:var(--dim)}
|
|
|
|
|
.tier{color:var(--dim);font-size:.72rem}
|
|
|
|
|
a{color:var(--amber);text-decoration:none;border-bottom:1px solid rgba(217,164,65,.35)}
|
|
|
|
|
a:hover{border-bottom-color:var(--amber)}
|
|
|
|
|
.note{color:var(--dim);font-size:.8rem;line-height:1.65;margin:1rem 0 0}
|
|
|
|
|
pre{overflow-x:auto;background:#111413;border:1px solid var(--rule);padding:1rem;font-size:.76rem;line-height:1.5;color:var(--bone)}
|
|
|
|
|
code{font-size:.86em;color:var(--bone)}
|
fix(signal): the uninstall does not uninstall
Observed on the operator's machine 2026-10-30 while reinstalling to put the app
to use. Four months after the package was purged, a fresh install found
~/.config/Signal/sql/db.sqlite (54,214,656 bytes, mtime 2026-06-21), tried to
open it, and aborted before the linking screen:
MainSQL: sqlite(SQLITE_NOTADB): file is not a database in PRAGMA journal_mode = WAL
MainSQL: migrateDatabase: Migration without cipher change failed
sql.initialize was unsuccessful; returning early
The SQLCipher key in config.json no longer resolved. The UI named nothing and
offered only 'Delete data and restart', which discards the history. Moving the
config directory aside fixes it; nothing in the product says so.
Recorded as a medium finding, status open. The score does not move: 76.4 / B.
local_data_exposure was already 5 for exactly this behaviour, and a finding is
evidence, not a point. What changes is that the number now has a receipt instead
of a rationale.
Artifact: Servetus/00-Artifacts/2026/10-Oct/30/clu-signal-startup-failure/
main.log.excerpt - the failing run, verbatim
00-provenance.txt - package version, file sizes, sha256 of the retained db
Retained state moved to ~/Signal-backup-2026-10-30-0026, not deleted.
2026-10-30 00:31:21 -05:00
|
|
|
footer{margin-top:4rem;padding:1.25rem 0 2rem;border-top:1px dashed var(--rule);color:var(--dim);font-size:.78rem}
|
|
|
|
|
footer a{color:var(--dim);border-bottom:1px solid var(--rule)}
|
|
|
|
|
footer a:hover{color:var(--amber);border-color:var(--amber)}
|
|
|
|
|
.frow{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:.6rem}
|
|
|
|
|
.frow>div{flex:1 1 22rem;min-width:16rem}
|
|
|
|
|
.fmeta{font-size:.72rem;letter-spacing:.02em}
|
feat: the hook prober, and the list becomes the front door
Christian: 'drop any URL and say tell me where Big Tech has its hooks... we're
not just rating software, we're rating software as a service.'
db/hooks/probe.mjs answers that from public records only: DNS, MX, SPF, ASN via
Team Cymru, HTTP headers, and the third-party hosts named in the page's own HTML.
Nothing is scanned. If a site tells the world it sends mail through Google, this
reads it.
Verified live, 2026-10-29:
parler.com -> AS16509 AMAZON, plus Microsoft email, plus Vercel
netflix.com -> AS40027 NETFLIX (their own Open Connect edge), NOT AWS
signal.org -> Cloudflare CDN, Google touchpoints
bigtech.sucks-> AS16509 AMAZON (GoDaddy parking sits on AWS)
That netflix result is the important one. The front door is Netflix's own network;
the catalog and user data are in AWS. Edge ASN is not backend custody, and the tool
says so in its own header comment rather than pretending otherwise.
Also:
- The list is now the front door (public/index.html, generated from the DB).
The game moved to /game.html and keeps working, ready for its own subdomain.
- suggestion table + v_requested view: anyone can ask for a product to be rated,
no account, no email. Optional contact. Addresses are salted-hashed, never stored.
- POST /api/suggest on the existing server package, with a graceful fallback on the
static page to a Forgejo issue so requests are never lost when the server is down.
2026-10-29 17:23:11 -05:00
|
|
|
</style></head>
|
|
|
|
|
<body><div class="wrap"><nav>
|
|
|
|
|
<a href="/">The list</a>
|
|
|
|
|
<a href="/method.html">Method</a>
|
feat: the rating badge, served from our domain and regenerated from the record
Christian: 'I want them to put the BigTech.Sucks rating badge on their site.
It should be marketing for them.'
A sticker anyone can copy is worthless, so it is not a sticker.
- badge/<product>.svg is generated from the assessment row on every build.
Score, grade and date are never typed by a human.
- Served from bigtech.sucks. A copy pasted onto a vendor's own server is not a
badge and its link will not resolve. The domain is the signature.
- Regenerated every build, so improving earns a better badge without asking and
regressing loses it without warning.
- The SVG carries the record id, version and method in a comment, so a real
badge can be traced back to one assessment.
badges.html publishes the rules: free forever, only rated products, no badge as
a favour, and misuse called out publicly. Free matters, because charging for it
would make it worthless to both sides: marketing for the vendor, receipts for
their customer.
Also rewrote the write pass to emit report + badge per assessment in one loop, so
they can never drift apart.
2026-10-29 17:24:33 -05:00
|
|
|
<a href="/badges.html">Badge</a>
|
feat: the hook prober, and the list becomes the front door
Christian: 'drop any URL and say tell me where Big Tech has its hooks... we're
not just rating software, we're rating software as a service.'
db/hooks/probe.mjs answers that from public records only: DNS, MX, SPF, ASN via
Team Cymru, HTTP headers, and the third-party hosts named in the page's own HTML.
Nothing is scanned. If a site tells the world it sends mail through Google, this
reads it.
Verified live, 2026-10-29:
parler.com -> AS16509 AMAZON, plus Microsoft email, plus Vercel
netflix.com -> AS40027 NETFLIX (their own Open Connect edge), NOT AWS
signal.org -> Cloudflare CDN, Google touchpoints
bigtech.sucks-> AS16509 AMAZON (GoDaddy parking sits on AWS)
That netflix result is the important one. The front door is Netflix's own network;
the catalog and user data are in AWS. Edge ASN is not backend custody, and the tool
says so in its own header comment rather than pretending otherwise.
Also:
- The list is now the front door (public/index.html, generated from the DB).
The game moved to /game.html and keeps working, ready for its own subdomain.
- suggestion table + v_requested view: anyone can ask for a product to be rated,
no account, no email. Optional contact. Addresses are salted-hashed, never stored.
- POST /api/suggest on the existing server package, with a graceful fallback on the
static page to a Forgejo issue so requests are never lost when the server is down.
2026-10-29 17:23:11 -05:00
|
|
|
<a href="/oath.html">The Oath</a>
|
|
|
|
|
<a href="/game.html">Game</a>
|
|
|
|
|
<a href="https://forge.binaryranch.com/bunkhouse/bigtech-sucks">Source</a>
|
|
|
|
|
</nav>
|
|
|
|
|
<h1>The software rating list</h1>
|
|
|
|
|
<p class="sub">1 rated of 137 listed.
|
|
|
|
|
Every score is a measurement with an evidence trail, not an opinion with a number attached.</p>
|
|
|
|
|
|
|
|
|
|
<p class="lede">A rating is published only when a product has been audited, its evidence saved,
|
|
|
|
|
and its total recomputed by the build. Anything without that is listed as <em>not rated</em>,
|
|
|
|
|
which is a fact about our work, not about the software.</p>
|
|
|
|
|
|
|
|
|
|
<h2>Rated</h2>
|
|
|
|
|
<table>
|
|
|
|
|
<tr><th>Product</th><th>Vendor</th><th>Category</th><th class="num" style="text-align:right">Score</th><th class="num" style="text-align:right">Grade</th><th>Weakest</th></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="/report/signal-desktop.html">Signal Desktop</a></td>
|
|
|
|
|
<td class="tier">Signal</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num"><strong>76.4</strong></td>
|
|
|
|
|
<td class="num">B</td>
|
|
|
|
|
<td class="tier">local_data_exposure</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
<h2>Not yet rated</h2>
|
|
|
|
|
<p class="note">Ordered by category. Ask for any of these at the bottom and it moves up the queue.</p>
|
|
|
|
|
<table>
|
|
|
|
|
<tr><th>Product</th><th>Vendor</th><th>Category</th><th class="num" style="text-align:right">Score</th><th class="num" style="text-align:right">Status</th><th></th></tr>
|
|
|
|
|
|
|
|
|
|
<tr class="cathead"><td colspan="6">ai <span class="tier">12</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Alpaca</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>ChatGPT</td>
|
|
|
|
|
<td class="tier">OpenAI</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>ChatQT</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Gai</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Google Gemini</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>GPT4ALL</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>LM Studio</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>MindMate</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Moose</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Reins: Chat for Ollama</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>TarotCaster</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Writing Tools</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">ai</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">browser <span class="tier">11</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Chromium Web Browser</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>FireDragon</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Firefox</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Google Chrome</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>LibreWolf</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Microsoft Edge</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Mullvad Browser</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Waterfox</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Web</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Web Apps</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Yandex Browser</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">browser</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">calendar <span class="tier">3</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Google Calendar</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">calendar</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Calendar</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">calendar</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Contacts</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">calendar</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">crm <span class="tier">1</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Salesforce</td>
|
|
|
|
|
<td class="tier">Salesforce, Inc.</td>
|
|
|
|
|
<td class="tier">crm</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">dev <span class="tier">2</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>GitHub</td>
|
|
|
|
|
<td class="tier">Microsoft Corporation</td>
|
|
|
|
|
<td class="tier">dev</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Vercel</td>
|
|
|
|
|
<td class="tier">Vercel Inc.</td>
|
|
|
|
|
<td class="tier">dev</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">email <span class="tier">16</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Aerion</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Betterbird</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Convey</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Geary</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Gmail</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Kanmail</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Mail</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Mailspring</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Meli</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Meron</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Mail</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Outlook</td>
|
|
|
|
|
<td class="tier">Microsoft Corporation</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Proton Mail</td>
|
|
|
|
|
<td class="tier">Proton AG</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Thunderbird</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Thunderbird ESR</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Tuta (Experimental)</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">email</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">files <span class="tier">13</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Dropbox</td>
|
|
|
|
|
<td class="tier">Dropbox, Inc.</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Google Drive</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Lazyrsync</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud (self-hosted)</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Dropbox Migration</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Files</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Google Drive Migration</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Server</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Ocis</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>OneDrive</td>
|
|
|
|
|
<td class="tier">Microsoft Corporation</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>OxiCloud</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Seafile</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Syncthing Macos</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">files</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">health <span class="tier">2</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>23andMe</td>
|
|
|
|
|
<td class="tier">23andMe Holding Co.</td>
|
|
|
|
|
<td class="tier">health</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Fitbit</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">health</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">messaging <span class="tier">17</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Bitchat</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Chat</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Discord</td>
|
|
|
|
|
<td class="tier">Discord Inc.</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Flare</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Fluxer</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Gajim</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>GNUnet Messenger</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Kaidan</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Karere</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Lightning</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Mumble</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Spreed Signaling (HPB)</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Talk</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Parla</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Simplex Chat</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Slack</td>
|
|
|
|
|
<td class="tier">Salesforce, Inc.</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Whatsie</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">messaging</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">money <span class="tier">2</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Mint (Intuit)</td>
|
|
|
|
|
<td class="tier">Intuit Inc.</td>
|
|
|
|
|
<td class="tier">money</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Plaid</td>
|
|
|
|
|
<td class="tier">Plaid Inc.</td>
|
|
|
|
|
<td class="tier">money</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">notes <span class="tier">12</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Beaver Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Evernote</td>
|
|
|
|
|
<td class="tier">Evernote</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Notes</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Notesnook</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Notion</td>
|
|
|
|
|
<td class="tier">Notion Labs</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Obsidian Sync</td>
|
|
|
|
|
<td class="tier">Dynalist Inc.</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Scrivano for Handwritten Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Standard Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Sticky Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Swifty Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Trilium Notes</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">notes</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">os <span class="tier">2</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Google Android</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">os</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Windows 11</td>
|
|
|
|
|
<td class="tier">Microsoft Corporation</td>
|
|
|
|
|
<td class="tier">os</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">passwords <span class="tier">13</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>1Password</td>
|
|
|
|
|
<td class="tier">AgileBits Inc.</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Key Rack</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>LastPass</td>
|
|
|
|
|
<td class="tier">LastPass</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Password Client</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Passwords</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nitrokey App2</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>OneKeePass</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Password</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Password Generator</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Password Safe</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Password Secure</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Passwords and Keys</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Proton Pass</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">passwords</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">photos <span class="tier">13</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>A Photo Tool (Libre)</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Camera</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Ente Photos</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>GNU Image Manipulation Program</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Google Photos</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>iCloud Photos</td>
|
|
|
|
|
<td class="tier">Apple Inc.</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Photos</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Photobooth</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>PhotoCollage</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Photoflare</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Photometry</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>PhotoQt</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Photos</td>
|
|
|
|
|
<td class="tier">Unknown vendor</td>
|
|
|
|
|
<td class="tier">photos</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">productivity <span class="tier">3</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Google Workspace</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">productivity</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Microsoft 365</td>
|
|
|
|
|
<td class="tier">Microsoft Corporation</td>
|
|
|
|
|
<td class="tier">productivity</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Office</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">productivity</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">project <span class="tier">3</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Asana</td>
|
|
|
|
|
<td class="tier">Asana, Inc.</td>
|
|
|
|
|
<td class="tier">project</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Nextcloud Deck</td>
|
|
|
|
|
<td class="tier">Nextcloud GmbH</td>
|
|
|
|
|
<td class="tier">project</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Trello</td>
|
|
|
|
|
<td class="tier">Atlassian Corporation</td>
|
|
|
|
|
<td class="tier">project</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">smarthome <span class="tier">2</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Google Nest</td>
|
|
|
|
|
<td class="tier">Google LLC</td>
|
|
|
|
|
<td class="tier">smarthome</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Ring (Amazon)</td>
|
|
|
|
|
<td class="tier">Amazon.com, Inc.</td>
|
|
|
|
|
<td class="tier">smarthome</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">social <span class="tier">2</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Facebook</td>
|
|
|
|
|
<td class="tier">Meta Platforms</td>
|
|
|
|
|
<td class="tier">social</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>X (Twitter)</td>
|
|
|
|
|
<td class="tier">X Corp.</td>
|
|
|
|
|
<td class="tier">social</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">streaming <span class="tier">1</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Netflix</td>
|
|
|
|
|
<td class="tier">Netflix, Inc.</td>
|
|
|
|
|
<td class="tier">streaming</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">video <span class="tier">4</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Kino</td>
|
|
|
|
|
<td class="tier">Kino AI</td>
|
|
|
|
|
<td class="tier">video</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Microsoft Teams</td>
|
|
|
|
|
<td class="tier">Microsoft Corporation</td>
|
|
|
|
|
<td class="tier">video</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Otter.ai</td>
|
|
|
|
|
<td class="tier">Otter.ai</td>
|
|
|
|
|
<td class="tier">video</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>Zoom</td>
|
|
|
|
|
<td class="tier">Zoom Communications</td>
|
|
|
|
|
<td class="tier">video</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">voice <span class="tier">1</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>OpenAI Whisper API</td>
|
|
|
|
|
<td class="tier">OpenAI</td>
|
|
|
|
|
<td class="tier">voice</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cathead"><td colspan="6">vpn <span class="tier">1</span></td></tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>NordVPN</td>
|
|
|
|
|
<td class="tier">Nord Security</td>
|
|
|
|
|
<td class="tier">vpn</td>
|
|
|
|
|
<td class="num tier">—</td>
|
|
|
|
|
<td class="num tier">not rated</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
<h2>Ask for something to be rated</h2>
|
|
|
|
|
<p class="note">No account. No email required. If enough people ask for the same thing, it gets
|
|
|
|
|
rated next. If you leave a contact we will tell you when it ships.</p>
|
|
|
|
|
|
|
|
|
|
<form id="suggest" style="margin-top:1.25rem;max-width:34rem">
|
|
|
|
|
<label style="display:block;margin-bottom:.6rem">
|
|
|
|
|
<span class="tier">Product name</span>
|
|
|
|
|
<input name="product_name" required maxlength="120"
|
|
|
|
|
style="display:block;width:100%;margin-top:.3rem;padding:.55rem .6rem;background:#111413;
|
|
|
|
|
border:1px solid var(--rule);color:var(--bone);font:inherit;font-size:.9rem">
|
|
|
|
|
</label>
|
|
|
|
|
<label style="display:block;margin-bottom:.6rem">
|
|
|
|
|
<span class="tier">Category, if you know it (optional)</span>
|
|
|
|
|
<input name="category_hint" maxlength="60"
|
|
|
|
|
style="display:block;width:100%;margin-top:.3rem;padding:.55rem .6rem;background:#111413;
|
|
|
|
|
border:1px solid var(--rule);color:var(--bone);font:inherit;font-size:.9rem">
|
|
|
|
|
</label>
|
|
|
|
|
<label style="display:block;margin-bottom:.6rem">
|
|
|
|
|
<span class="tier">Why it matters (optional)</span>
|
|
|
|
|
<input name="note" maxlength="280"
|
|
|
|
|
style="display:block;width:100%;margin-top:.3rem;padding:.55rem .6rem;background:#111413;
|
|
|
|
|
border:1px solid var(--rule);color:var(--bone);font:inherit;font-size:.9rem">
|
|
|
|
|
</label>
|
|
|
|
|
<label style="display:block;margin-bottom:1rem">
|
|
|
|
|
<span class="tier">Contact, if you want a reply (optional)</span>
|
|
|
|
|
<input name="contact" maxlength="160"
|
|
|
|
|
style="display:block;width:100%;margin-top:.3rem;padding:.55rem .6rem;background:#111413;
|
|
|
|
|
border:1px solid var(--rule);color:var(--bone);font:inherit;font-size:.9rem">
|
|
|
|
|
</label>
|
|
|
|
|
<button type="submit" style="padding:.6rem 1.2rem;background:var(--amber);color:#14110a;
|
|
|
|
|
border:0;font:inherit;font-weight:600;cursor:pointer">Send it</button>
|
|
|
|
|
<p id="msg" class="note" style="min-height:1.4rem"></p>
|
|
|
|
|
</form>
|
|
|
|
|
<script>
|
|
|
|
|
(() => {
|
|
|
|
|
const form = document.getElementById('suggest');
|
|
|
|
|
const msg = document.getElementById('msg');
|
|
|
|
|
form.addEventListener('submit', async (e) => {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
const data = Object.fromEntries(new FormData(form).entries());
|
|
|
|
|
msg.textContent = 'Sending…';
|
|
|
|
|
try {
|
|
|
|
|
const r = await fetch('/api/suggest', {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
|
body: JSON.stringify(data),
|
|
|
|
|
});
|
|
|
|
|
if (!r.ok) throw new Error('HTTP ' + r.status);
|
|
|
|
|
msg.textContent = 'Got it. It is on the list now, and it goes up the queue as more people ask.';
|
|
|
|
|
form.reset();
|
|
|
|
|
} catch (err) {
|
|
|
|
|
msg.innerHTML = 'The suggestion endpoint is not live yet. ' +
|
|
|
|
|
'<a href="https://forge.binaryranch.com/bunkhouse/bigtech-sucks/issues/new">Open it as an issue instead</a> ' +
|
|
|
|
|
'and it will not get lost.';
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})();
|
|
|
|
|
</script>
|
fix(signal): the uninstall does not uninstall
Observed on the operator's machine 2026-10-30 while reinstalling to put the app
to use. Four months after the package was purged, a fresh install found
~/.config/Signal/sql/db.sqlite (54,214,656 bytes, mtime 2026-06-21), tried to
open it, and aborted before the linking screen:
MainSQL: sqlite(SQLITE_NOTADB): file is not a database in PRAGMA journal_mode = WAL
MainSQL: migrateDatabase: Migration without cipher change failed
sql.initialize was unsuccessful; returning early
The SQLCipher key in config.json no longer resolved. The UI named nothing and
offered only 'Delete data and restart', which discards the history. Moving the
config directory aside fixes it; nothing in the product says so.
Recorded as a medium finding, status open. The score does not move: 76.4 / B.
local_data_exposure was already 5 for exactly this behaviour, and a finding is
evidence, not a point. What changes is that the number now has a receipt instead
of a rationale.
Artifact: Servetus/00-Artifacts/2026/10-Oct/30/clu-signal-startup-failure/
main.log.excerpt - the failing run, verbatim
00-provenance.txt - package version, file sizes, sha256 of the retained db
Retained state moved to ~/Signal-backup-2026-10-30-0026, not deleted.
2026-10-30 00:31:21 -05:00
|
|
|
<footer>
|
|
|
|
|
<div class="frow">
|
|
|
|
|
<div>
|
|
|
|
|
Built in the open at the
|
|
|
|
|
<a href="https://forge.binaryranch.com/bunkhouse">Binary Ranch Bunkhouse</a>.
|
|
|
|
|
Every repository there is one you can read, clone, and leave with.
|
|
|
|
|
</div>
|
|
|
|
|
<div class="fmeta">
|
|
|
|
|
Generated from <code>bigtech.db</code> on 2026-10-30.
|
|
|
|
|
Method btr-0.1. Every number recomputes from its evidence or the build fails.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="frow">
|
|
|
|
|
<div class="fmeta">
|
|
|
|
|
<a href="https://forge.binaryranch.com/bunkhouse/bigtech-sucks">Source for this site</a> ·
|
|
|
|
|
<a href="https://forge.binaryranch.com/bunkhouse/vitals">vitals</a> ·
|
|
|
|
|
<a href="https://forge.binaryranch.com/bunkhouse/otter-dark-mode">otter-dark-mode</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="fmeta">
|
|
|
|
|
<a href="https://binaryranch.com">Binary Ranch</a> · Venice, Florida
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</footer>
|
feat: the hook prober, and the list becomes the front door
Christian: 'drop any URL and say tell me where Big Tech has its hooks... we're
not just rating software, we're rating software as a service.'
db/hooks/probe.mjs answers that from public records only: DNS, MX, SPF, ASN via
Team Cymru, HTTP headers, and the third-party hosts named in the page's own HTML.
Nothing is scanned. If a site tells the world it sends mail through Google, this
reads it.
Verified live, 2026-10-29:
parler.com -> AS16509 AMAZON, plus Microsoft email, plus Vercel
netflix.com -> AS40027 NETFLIX (their own Open Connect edge), NOT AWS
signal.org -> Cloudflare CDN, Google touchpoints
bigtech.sucks-> AS16509 AMAZON (GoDaddy parking sits on AWS)
That netflix result is the important one. The front door is Netflix's own network;
the catalog and user data are in AWS. Edge ASN is not backend custody, and the tool
says so in its own header comment rather than pretending otherwise.
Also:
- The list is now the front door (public/index.html, generated from the DB).
The game moved to /game.html and keeps working, ready for its own subdomain.
- suggestion table + v_requested view: anyone can ask for a product to be rated,
no account, no email. Optional contact. Addresses are salted-hashed, never stored.
- POST /api/suggest on the existing server package, with a graceful fallback on the
static page to a Forgejo issue so requests are never lost when the server is down.
2026-10-29 17:23:11 -05:00
|
|
|
</div></body></html>
|