Files
securebit-chat/docs/index.html
T

211 lines
11 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<!-- Generated by scripts/build-docs.js from doc/*.md. Edits here are overwritten;
change the Markdown instead. -->
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; img-src 'self' data:; base-uri 'none'; form-action 'none'; frame-ancestors 'none'; upgrade-insecure-requests;">
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin">
<title>Documentation - SecureBit.chat</title>
<meta name="description" content="Technical documentation for SecureBit.chat. Start with the project README if you are looking for an overview or a quick start.">
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
<link rel="canonical" href="https://securebit.chat/docs/">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico">
<meta property="og:site_name" content="SecureBit.chat">
<meta property="og:title" content="Documentation - SecureBit.chat">
<meta property="og:description" content="Technical documentation for SecureBit.chat. Start with the project README if you are looking for an overview or a quick start.">
<meta property="og:url" content="https://securebit.chat/docs/">
<meta property="og:type" content="article">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://securebit.chat/assets/social-card.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Documentation - SecureBit.chat">
<meta name="twitter:description" content="Technical documentation for SecureBit.chat. Start with the project README if you are looking for an overview or a quick start.">
<meta name="twitter:image" content="https://securebit.chat/assets/social-card.png">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Documentation",
"description": "Technical documentation for SecureBit.chat. Start with the project README if you are looking for an overview or a quick start.",
"url": "https://securebit.chat/docs/",
"inLanguage": "en",
"isPartOf": {
"@type": "WebSite",
"@id": "https://securebit.chat/#website"
},
"publisher": {
"@id": "https://securebit.chat/#organization"
}
}
</script>
<style>
2026-09-04 17:38:41 -04:00
/* These pages carry no script — that is the point of them — so the theme can only
come from the media query. There is no toggle here and no stored preference: a
reference page follows the reader's system and nothing else. The values are the
same two palettes as src/styles/theme.css, restated because these pages do not
load the app's stylesheet and are not going to start for eleven declarations. */
:root {
color-scheme: dark;
--d-ink: 255, 255, 255;
--d-bg: #0f0f11;
--d-bg-deep: #0b0b0e;
--d-code-bg: #17171c;
--d-text: #d6d6dc;
--d-heading: #f4f4f6;
--d-strong: #e8e8eb;
--d-body: #a9a9b3;
--d-pre: #c9c9d1;
--d-muted: #8a8a92;
--d-faint: #6b6b73;
--d-accent: #f0892a;
--d-accent-rgb: 240, 137, 42;
}
@media (prefers-color-scheme: light) {
:root {
color-scheme: light;
--d-ink: 0, 0, 0;
--d-bg: #fbfbfc;
--d-bg-deep: #f2f3f5;
--d-code-bg: #f2f3f5;
--d-text: #26262c;
--d-heading: #0e0e12;
--d-strong: #1b1b20;
--d-body: #43434c;
--d-pre: #2f3340;
--d-muted: #63636c;
--d-faint: #7c7c85;
--d-accent: #b05c08;
--d-accent-rgb: 176, 92, 8;
}
}
* { box-sizing: border-box; }
body {
margin: 0;
2026-09-04 17:38:41 -04:00
background: var(--d-bg);
color: var(--d-text);
font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
font-size: 16px;
line-height: 1.68;
}
.wrap { max-width: 46rem; margin: 0 auto; padding: 28px 24px 90px; }
.top {
display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: baseline;
padding-bottom: 16px; margin-bottom: 40px;
2026-09-04 17:38:41 -04:00
border-bottom: 1px solid rgba(var(--d-ink),.08);
font-size: 13.5px;
}
2026-09-04 17:38:41 -04:00
.top a { color: var(--d-muted); text-decoration: none; }
.top a:hover, .top a:focus-visible { color: var(--d-accent); }
.top .brand { color: var(--d-accent); font-weight: 700; letter-spacing: .04em; }
.top .here { color: var(--d-text); margin-inline-start: auto; }
h1 { font-size: clamp(28px, 5vw, 36px); font-weight: 800; letter-spacing: -1px; line-height: 1.14; color: var(--d-heading); margin: 0 0 24px; }
h2 { font-size: 22px; font-weight: 700; letter-spacing: -.4px; color: var(--d-heading); margin: 46px 0 12px; padding-top: 14px; border-top: 1px solid rgba(var(--d-ink),.07); }
h3 { font-size: 17.5px; font-weight: 700; color: var(--d-strong); margin: 30px 0 8px; }
h4 { font-size: 15.5px; font-weight: 700; color: var(--d-strong); margin: 22px 0 6px; }
p, li { color: var(--d-body); }
p { margin: 0 0 16px; }
ul, ol { padding-inline-start: 22px; margin: 0 0 16px; }
li { margin: 5px 0; }
2026-09-04 17:38:41 -04:00
a { color: var(--d-accent); text-underline-offset: 2px; }
strong { color: var(--d-strong); }
code { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: .88em; background: var(--d-code-bg); border: 1px solid rgba(var(--d-ink),.07); border-radius: 4px; padding: 1px 5px; color: var(--d-strong); }
pre { background: var(--d-bg-deep); border: 1px solid rgba(var(--d-ink),.08); border-radius: 8px; padding: 14px 16px; overflow-x: auto; margin: 0 0 18px; }
pre code { background: none; border: 0; padding: 0; font-size: 13px; line-height: 1.62; color: var(--d-pre); }
.tablewrap { overflow-x: auto; margin: 0 0 20px; }
table { border-collapse: collapse; width: 100%; font-size: 14.5px; min-width: 30rem; }
2026-09-04 17:38:41 -04:00
th { text-align: start; color: var(--d-muted); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; padding: 0 14px 8px 0; border-bottom: 1px solid rgba(var(--d-ink),.12); }
td { padding: 9px 14px 9px 0; border-bottom: 1px solid rgba(var(--d-ink),.06); vertical-align: top; color: var(--d-body); }
td:first-child, th:first-child { padding-inline-start: 0; }
2026-09-04 17:38:41 -04:00
blockquote { margin: 0 0 18px; padding: 2px 0 2px 16px; border-inline-start: 3px solid rgba(var(--d-accent-rgb),.4); color: var(--d-muted); }
hr { border: 0; border-top: 1px solid rgba(var(--d-ink),.08); margin: 34px 0; }
img { max-width: 100%; height: auto; }
2026-09-04 17:38:41 -04:00
a:focus-visible { outline: 2px solid var(--d-accent); outline-offset: 2px; border-radius: 2px; }
.more { margin-top: 64px; padding-top: 22px; border-top: 1px solid rgba(var(--d-ink),.08); }
.more h2 { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--d-faint); border: 0; margin: 0 0 12px; padding: 0; font-weight: 700; }
.more ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 4px 24px; }
2026-09-04 17:38:41 -04:00
.more li { margin: 0; padding: 7px 0; border-bottom: 1px solid rgba(var(--d-ink),.05); font-size: 14.5px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
</style>
</head>
<body>
<div class="wrap">
<nav class="top">
<a class="brand" href="/">SecureBit.chat</a>
<a href="/docs/">Documentation</a>
<a href="https://github.com/SecureBitChat/securebit-chat" rel="noopener">GitHub</a>
<span class="here">Documentation</span>
</nav>
<h1>Documentation</h1>
<p>Technical documentation for SecureBit.chat. Start with the project <a href="https://github.com/SecureBitChat/securebit-chat#readme">README</a>
if you are looking for an overview or a quick start.</p>
<div class="tablewrap"><table>
<thead>
<tr>
<th>Document</th>
<th>What it covers</th>
</tr>
</thead>
<tbody><tr>
<td><a href="/docs/architecture/">ARCHITECTURE.md</a></td>
<td>How a session is established, verified and torn down, and where each guarantee comes from</td>
</tr>
<tr>
<td><a href="/docs/cryptography/">CRYPTOGRAPHY.md</a></td>
<td>Key schedule, the Double Ratchet, SAS verification, memory handling</td>
</tr>
<tr>
<td><a href="/docs/descriptor-sbq2/">DESCRIPTOR-SBQ2.md</a></td>
<td>The invitation format: wire layout, why it is small, the in-band key exchange, decoder rules</td>
</tr>
<tr>
<td><a href="/docs/configuration/">CONFIGURATION.md</a></td>
<td>Deployment, ICE and TURN setup, privacy modes, file transfer policy</td>
</tr>
<tr>
<td><a href="/docs/calls/">CALLS.md</a></td>
<td>Voice and video: codec choices, adaptation, and why each value was picked</td>
</tr>
<tr>
<td><a href="/docs/api/">API.md</a></td>
<td>Internal interfaces of the WebRTC manager and file transfer system</td>
</tr>
<tr>
<td><a href="/docs/contributing/">CONTRIBUTING.md</a></td>
<td>Development workflow and what needs extra review</td>
</tr>
<tr>
<td><a href="/docs/use-policy/">USE-POLICY.md</a></td>
<td>Terms of use, intended use, and the limits of what the software can protect</td>
</tr>
</tbody></table></div>
<p>Security policy and vulnerability reporting live in <a href="https://github.com/SecureBitChat/securebit-chat/blob/main/SECURITY.md">SECURITY.md</a> at
the repository root, where GitHub expects to find them.</p>
<h2 id="keeping-this-accurate">Keeping this accurate</h2>
<p>These documents describe the current release and are expected to change with it.
Every value quoted here (limits, timeouts, algorithm parameters) is taken from the
source rather than restated from memory, so if you change one in code, change it
here in the same commit. <a href="/docs/contributing/">CONTRIBUTING.md</a> lists which documents
are affected by which areas of the code.</p>
<nav class="more">
<h2>More documentation</h2>
<ul>
<li><a href="/docs/faq/">Frequently asked questions</a></li>
<li><a href="/docs/architecture/">Architecture</a></li>
<li><a href="/docs/cryptography/">Cryptography</a></li>
<li><a href="/docs/descriptor-sbq2/">SBQ2 — connection descriptor v2</a></li>
<li><a href="/docs/configuration/">Configuration</a></li>
<li><a href="/docs/calls/">Voice and video calls</a></li>
<li><a href="/docs/api/">API Notes</a></li>
<li><a href="/docs/contributing/">Contributing</a></li>
<li><a href="/docs/use-policy/">Use policy and limitations</a></li>
</ul>
</nav>
</div>
</body>
</html>