bigtech-sucks/packages/web/public/index.html

1163 lines
39 KiB
HTML
Raw Normal View History

<!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)}
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}
</style></head>
<body><div class="wrap"><nav>
<a href="/">The list</a>
<a href="/method.html">Method</a>
<a href="/badges.html">Badge</a>
<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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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">&mdash;</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>
<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> &middot;
<a href="https://forge.binaryranch.com/bunkhouse/vitals">vitals</a> &middot;
<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> &middot; Venice, Florida
</div>
</div>
</footer>
</div></body></html>