Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions layouts/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{{ define "main" }}
<link rel="stylesheet" href="/css/home.css">

<div class="home-page">
<section class="home-section home-hero">
<div class="home-container">
<p class="home-eyebrow">Distributed SQLite, made easy</p>
<h1 class="home-headline">The lightweight, distributed relational database built on SQLite.</h1>
<p class="home-subhead">Run a fault-tolerant, highly available SQL database with zero hassle — for resilient services in the cloud and reliable applications at the edge.</p>
<div class="home-cta-row">
<a class="home-cta home-cta--primary" href="/docs/install-rqlite/">Get Started</a>
<a class="home-cta home-cta--secondary" href="https://github.com/rqlite/rqlite">GitHub</a>
</div>
</div>
</section>

<section class="home-section home-why">
<div class="home-container">
<p class="home-eyebrow">Why rqlite</p>
<h2 class="home-section-title">When SQLite isn't enough and Postgres is too much.</h2>
<div class="home-prose">
<p>SQLite is the most-deployed database engine in the world: a single file, no server, no fuss. But a single file is fragile — lose the disk and you lose the data. rqlite keeps SQLite's simplicity and layers Raft-based replication on top, so the same database lives on three or five nodes and any one of them can fail without taking the cluster down.</p>
<p>Postgres is the right answer when you need write-scaling and a deep ecosystem. It's heavy when you just need durable, replicated relational storage for configuration, control-plane data, or moderate workloads. rqlite ships as a single static binary, forms a cluster with one flag, and asks for nothing else — no external coordinator, no separate consensus layer.</p>
</div>
</div>
</section>
</div>
{{ end }}
159 changes: 159 additions & 0 deletions static/css/home.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
.home-page {
--home-bg: #fafafa;
--home-bg-elev: #ffffff;
--home-text: #0a0a0a;
--home-text-muted: #6b7280;
--home-hairline: #e5e5e5;
--home-accent: #0169c9;
--home-accent-deep: #013397;

background: var(--home-bg);
color: var(--home-text);
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;

/* Escape any container Docsy wraps `main` in, so section backgrounds
extend edge-to-edge regardless of the theme's layout. */
width: 100vw;
position: relative;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;
}

.home-page,
.home-page * {
box-sizing: border-box;
}

.home-page a {
color: var(--home-accent);
text-decoration: none;
}
.home-page a:hover {
text-decoration: underline;
}

.home-container {
max-width: 72rem;
margin: 0 auto;
padding: 0 1.5rem;
}

.home-section {
padding: 5rem 0;
border-bottom: 1px solid var(--home-hairline);
}

.home-hero {
padding: 7rem 0 6rem;
}

.home-eyebrow {
text-transform: uppercase;
letter-spacing: 0.14em;
font-size: 0.8125rem;
font-weight: 600;
color: var(--home-accent);
margin: 0 0 1.5rem;
}

.home-headline {
font-size: clamp(2.25rem, 5vw, 4rem);
font-weight: 500;
line-height: 1.05;
letter-spacing: -0.02em;
margin: 0 0 1.5rem;
max-width: 52rem;
color: var(--home-text);
}

.home-subhead {
font-size: 1.125rem;
line-height: 1.55;
color: var(--home-text-muted);
margin: 0 0 2.5rem;
max-width: 40rem;
}

.home-section-title {
font-size: clamp(1.75rem, 3.5vw, 2.5rem);
font-weight: 500;
line-height: 1.15;
letter-spacing: -0.02em;
margin: 0 0 2.5rem;
max-width: 40rem;
color: var(--home-text);
}

.home-prose {
max-width: 38rem;
font-size: 1.0625rem;
line-height: 1.65;
color: var(--home-text);
}
.home-prose p {
margin: 0 0 1.25rem;
}
.home-prose p:last-child {
margin-bottom: 0;
}

.home-cta-row {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
}

.home-cta {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.75rem 1.25rem;
font-size: 0.9375rem;
font-weight: 500;
border: 1px solid transparent;
text-decoration: none !important;
transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
}

.home-cta--primary {
background: var(--home-accent);
color: #ffffff;
border-color: var(--home-accent);
}
.home-cta--primary:hover {
background: var(--home-accent-deep);
border-color: var(--home-accent-deep);
color: #ffffff;
}

.home-cta--secondary {
background: transparent;
color: var(--home-text);
border-color: var(--home-hairline);
}
.home-cta--secondary:hover {
border-color: var(--home-text);
color: var(--home-text);
}

@media (max-width: 768px) {
.home-hero {
padding: 4rem 0 3rem;
}
.home-headline {
letter-spacing: -0.01em;
}
.home-cta {
width: 100%;
}
}

@media (prefers-reduced-motion: reduce) {
.home-cta {
transition: none;
}
}