Files
simplex-manager/web/about.html
Jon 7c712c9ee3 Rich chat messages (reactions, replies, files, images); RSS poll countdown; Speakers' Corner directory page updates
- Chat: extract reactions, quoted replies, file/image data in _normalize_item
- Chat: render emoji reaction pills, reply-quote blocks, inline image previews, file blocks with Accept/Download
- Chat: reply UI (hover → set reply → preview bar above compose → send with quotedItemId)
- Chat: emoji picker strip (6 quick-react emojis) on message hover
- Chat: POST /react and POST /file/{id}/receive and GET /file/{id}/download endpoints
- Chat: file decryption via core.chat_read_file (native libsimplex FFI), served with correct MIME type
- List: RSS bot cards show live next-poll countdown (ticks every second via status API poll_next field)
- Directory: rename SimpleXXX → Speakers' Corner Online Directory throughout
- Directory: add hero banner image, About page link, QR popout, title hyperlink
- Directory: new about.html — Online Safety Act, Digital ID, 65k arrests stat, community rules

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 20:23:00 +01:00

349 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About — Speakers' Corner Online Directory</title>
<meta name="description" content="Why Speakers' Corner Online exists — private, uncensored conversation for UK residents facing the Online Safety Act, digital ID, and growing surveillance of speech.">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' fill='%230053D0'/%3E%3Cg transform='translate(50,50) rotate(45)'%3E%3Crect x='-34' y='-9' width='68' height='18' fill='%2302C0FF'/%3E%3Crect x='-9' y='-34' width='18' height='68' fill='%2302C0FF'/%3E%3Crect x='-20' y='-5' width='40' height='10' fill='%230053D0'/%3E%3Crect x='-5' y='-20' width='10' height='40' fill='%230053D0'/%3E%3C/g%3E%3C/svg%3E">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #f5f5f7;
--card-bg: #ffffff;
--text: #1d1d1f;
--muted: #6e6e73;
--accent: #0053D0;
--border: #e0e0e5;
--shadow: 0px 20px 30px rgba(0,0,0,0.12);
--warn: #b91c1c;
--warn-bg: #fef2f2;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #111827;
--card-bg: #0B2A59;
--text: #f5f5f7;
--muted: #9ca3af;
--accent: #70F0F9;
--border: #1e3a5f;
--shadow: none;
--warn: #fca5a5;
--warn-bg: rgba(185,28,28,0.18);
}
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
background: var(--bg);
color: var(--text);
min-height: 100vh;
}
header {
background: var(--card-bg);
border-bottom: 1px solid var(--border);
padding: 14px 24px;
position: sticky; top: 0; z-index: 10;
}
.header-inner {
max-width: 860px; margin: 0 auto;
display: flex; align-items: center;
justify-content: space-between; gap: 10px;
}
.logo-text {
font-size: 18px; font-weight: 700;
color: var(--accent); letter-spacing: -0.5px;
}
.container {
max-width: 760px; margin: 0 auto;
padding: 48px 20px 80px;
}
h1 {
font-size: clamp(26px, 5vw, 36px);
font-weight: 700; color: var(--accent);
margin-bottom: 8px;
}
.page-lead {
font-size: 16px; color: var(--muted);
line-height: 1.7; margin-bottom: 40px;
max-width: 640px;
}
.page-lead a { color: var(--accent); text-decoration: none; }
/* Stat banner */
.stat-banner {
background: var(--warn-bg);
border: 1.5px solid var(--warn);
border-radius: 14px;
padding: 22px 28px;
margin-bottom: 32px;
display: flex; gap: 18px; align-items: flex-start;
}
.stat-number {
font-size: clamp(36px, 8vw, 52px);
font-weight: 800; color: var(--warn);
line-height: 1; flex-shrink: 0;
}
.stat-body { flex: 1; }
.stat-body strong {
display: block; font-size: 15px;
color: var(--text); margin-bottom: 5px;
}
.stat-body p { font-size: 13px; color: var(--muted); line-height: 1.6; }
.stat-body a { color: var(--warn); text-decoration: none; font-size: 12px; }
.stat-body a:hover { text-decoration: underline; }
/* Section cards */
.section {
background: var(--card-bg); border-radius: 16px;
box-shadow: var(--shadow); padding: 28px 32px;
margin-bottom: 24px;
}
.section-icon { font-size: 26px; margin-bottom: 10px; display: block; }
.section h2 { font-size: 19px; font-weight: 700; margin-bottom: 14px; color: var(--text); }
.section p {
font-size: 14px; line-height: 1.75; color: var(--muted);
margin-bottom: 10px;
}
.section p:last-child { margin-bottom: 0; }
.section a { color: var(--accent); text-decoration: none; }
.section a:hover { text-decoration: underline; }
.section ol, .section ul { padding-left: 20px; margin-top: 8px; }
.section li { font-size: 14px; line-height: 1.7; color: var(--muted); margin-bottom: 6px; }
.section li:last-child { margin-bottom: 0; }
/* Rule rows */
.rule-list { list-style: none; padding: 0; margin-top: 8px; }
.rule-list li {
display: flex; gap: 12px; align-items: flex-start;
padding: 10px 0; border-bottom: 1px solid var(--border);
}
.rule-list li:last-child { border-bottom: none; }
.rule-dot {
width: 8px; height: 8px; border-radius: 50%;
background: var(--accent); flex-shrink: 0; margin-top: 6px;
}
.rule-body strong { display: block; font-size: 14px; color: var(--text); margin-bottom: 2px; }
.rule-body span { font-size: 13px; color: var(--muted); line-height: 1.55; }
/* Callouts */
.callout {
border-left: 4px solid var(--accent);
background: color-mix(in srgb, var(--accent) 8%, transparent);
border-radius: 0 10px 10px 0;
padding: 12px 16px; margin-top: 14px;
font-size: 13px; color: var(--muted); line-height: 1.65;
}
.callout.warn {
border-left-color: var(--warn);
background: var(--warn-bg);
}
footer {
text-align: center; padding: 28px 20px;
font-size: 12px; color: var(--muted);
border-top: 1px solid var(--border);
}
footer a { color: var(--accent); text-decoration: none; }
@media (max-width: 640px) {
.section { padding: 20px; }
.stat-banner { flex-direction: column; gap: 8px; padding: 18px 20px; }
}
</style>
</head>
<body>
<header>
<div class="header-inner">
<a href="./index.html" style="text-decoration:none;">
<span class="logo-text">Speakers' Corner Online</span>
</a>
<a href="./index.html" style="color:var(--accent);font-size:13px;font-weight:600;text-decoration:none;">← Directory</a>
</div>
</header>
<div class="container">
<h1>Why This Exists</h1>
<p class="page-lead">
The United Kingdom has quietly become one of the most aggressive surveilleurs of online
speech in the democratic world. Speakers' Corner Online was built as a response — a place
where residents can talk freely, privately, and without fear, using infrastructure that
cannot be monitored or compelled to hand over your conversations.
</p>
<!-- Stat banner -->
<div class="stat-banner">
<div class="stat-number">65,000+</div>
<div class="stat-body">
<strong>arrests in the UK for social media posts since 2017</strong>
<p>
British police forces have made over 65,000 arrests for online speech in less than a decade —
averaging more than 20 arrests every single day. Offences range from "grossly offensive"
messages under the Communications Act to alleged "stirring up" of hatred, applied
increasingly broadly and with little consistency.
</p>
<a href="https://archive.ph/bdEqK" target="_blank">Source: archived report ↗</a>
</div>
</div>
<!-- Online Safety Act -->
<div class="section">
<span class="section-icon">&#128274;</span>
<h2>The Online Safety Act</h2>
<p>
The Online Safety Act 2023 granted Ofcom sweeping powers to demand that platforms
scan private messages for illegal content — a power that, by technical necessity,
requires breaking end-to-end encryption. Put simply: if a platform must be able to
read your messages to check them, your messages are no longer private.
</p>
<p>
The Act also imposes broad "duty of care" obligations that incentivise platforms to
over-censor legal speech to avoid regulatory liability. The practical result is that
mainstream platforms increasingly remove or restrict content that is perfectly lawful —
not because it breaks any law, but because it is cheaper than arguing with a regulator.
</p>
<div class="callout warn">
Signal, WhatsApp and others have threatened to leave the UK market rather than comply
with backdoor requirements. SimpleX's architecture makes compliance technically
impossible — there is no central server holding your keys and no company that can be
served a disclosure order for your messages.
</div>
</div>
<!-- Digital ID -->
<div class="section">
<span class="section-icon">&#127820;</span>
<h2>Digital Identity &amp; the Coming Infrastructure</h2>
<p>
The UK government is rolling out a voluntary Digital Identity and Attributes Trust
Framework that creates the infrastructure for verified digital IDs accepted across
government and private services. "Voluntary" has a habit of becoming mandatory once
the infrastructure exists — access to banking, benefits, travel and eventually online
platforms may increasingly depend on presenting a verified digital identity.
</p>
<p>
Combined with age-verification mandates in the Online Safety Act, the direction of
travel is clear: anonymous online participation is being engineered out of existence.
Once every account is tied to a real identity, the chilling effect on speech becomes
total — people will self-censor on anything that could attract official attention.
</p>
<div class="callout">
SimpleX requires no phone number, no email address, and no government ID.
Your identity on this network is a cryptographic key that exists only on your device.
There is nothing to subpoena and no account to suspend.
</div>
</div>
<!-- Why SimpleX -->
<div class="section">
<span class="section-icon">&#128640;</span>
<h2>Why SimpleX</h2>
<p>
Most "private" messaging apps still require a phone number — which ties every account
to a real identity via your mobile carrier. SimpleX was designed from the ground up to
have no user identifiers at all. Each conversation uses a fresh pair of message queues;
even the platform operator cannot link two conversations to the same person.
</p>
<ul>
<li><strong>No phone number or email required</strong> — connect via a QR code or link.</li>
<li><strong>No central user database</strong> — there is nothing to leak, sell, or hand to police.</li>
<li><strong>End-to-end encrypted</strong> — messages are decrypted only on your device.</li>
<li><strong>Open source</strong> — the code can be audited by anyone.</li>
<li><strong>Self-hostable</strong> — you can run your own relay servers and remain fully independent.</li>
</ul>
<p style="margin-top:12px;">
<a href="https://simplex.chat/downloads/" target="_blank">Download the SimpleX app →</a>
</p>
</div>
<!-- Community rules -->
<div class="section">
<span class="section-icon">&#128220;</span>
<h2>Community Rules</h2>
<p>
We defend the right to hold and express unpopular opinions. The narrow set of rules
below are about direct harm — not offence, not controversy, not dissent.
</p>
<ul class="rule-list">
<li>
<div class="rule-dot"></div>
<div class="rule-body">
<strong>No illegal content</strong>
<span>Content that is illegal in the UK — CSAM, credible incitement to imminent violence, etc. — will result in immediate removal and referral to authorities.</span>
</div>
</li>
<li>
<div class="rule-dot"></div>
<div class="rule-body">
<strong>No targeted harassment campaigns</strong>
<span>Groups whose sole purpose is to coordinate abuse toward a specific individual are not permitted.</span>
</div>
</li>
<li>
<div class="rule-dot"></div>
<div class="rule-body">
<strong>No doxing</strong>
<span>Publishing someone's private personal information (home address, workplace, phone number) without consent is not allowed.</span>
</div>
</li>
<li>
<div class="rule-dot"></div>
<div class="rule-body">
<strong>Label adult content</strong>
<span>Communities containing explicit material must say so clearly in their description.</span>
</div>
</li>
<li>
<div class="rule-dot"></div>
<div class="rule-body">
<strong>Honest descriptions</strong>
<span>Your group's name and description must accurately represent what it is. No spam, no bait-and-switch.</span>
</div>
</li>
</ul>
<div class="callout">
Controversial, offensive, politically extreme, or unpopular speech is explicitly
permitted here. The entire point of this platform is that you do not need our approval
to speak — only your own conscience.
</div>
</div>
<!-- Reporting -->
<div class="section">
<span class="section-icon">&#128226;</span>
<h2>Reporting &amp; Joining</h2>
<p>
To report a listed community that breaches the rules above, connect to the directory bot
via the QR code on the <a href="./index.html">main page</a> and send a brief message
with the community name and the nature of the breach. Reports are reviewed manually.
</p>
<p>
To submit your own group or channel, join the directory bot and follow the prompts.
Listing is free.
</p>
</div>
</div>
<footer>
<p>Speakers' Corner Online &mdash; private communities on the <a href="https://simplex.chat" target="_blank">SimpleX Network</a> &mdash; <a href="./index.html">← Back to Directory</a></p>
</footer>
</body>
</html>