add website and GitHub Pages deployment

This commit is contained in:
Astral
2026-09-01 11:23:34 +02:00
parent cb1da62339
commit da28f784a8
48 changed files with 3392 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Design decisions, so far — Keru OS news</title>
<meta name="description" content="The recorded decisions that stop Keru from drifting: shell manager, warn-not-block stability, sibling repos, installer-only ISO.">
<link rel="stylesheet" href="../assets/css/style.css">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>ける</text></svg>">
</head>
<body>
<nav class="top" data-nav></nav>
<header class="pagehead">
<p class="crumbs"><a href="../index.html">home</a> / <a href="../news.html">news</a> / design decisions</p>
<h1>Design decisions, so far</h1>
<p class="meta" style="font-family:var(--mono);color:var(--text-dim);font-size:.85rem">2026-09-01 · design</p>
</header>
<section>
<div class="wrap">
<div class="prose">
<p>Keru is early enough that its choices are still choices, not habits — so we're recording the ones already made, and why. If a decision ever looks wrong, this is the record of what it was meant to do.</p>
<h3>1. The package manager is a shell script</h3>
<p>Kama (~225 lines, pure shell) reads <code>make.conf</code> and runs recipe commands. No resolver, no database, no binary format. Rationale: legibility over machinery. The real cost of a build is the compiler, not the manager, so the manager should be boringly simple.</p>
<h3>2. Stability is warn-not-block</h3>
<p>Keru guarantees stability on the combinations it offers, and warns (never stops) you past that. Rationale: stable-on-what's-offered keeps the promise honest, and never-lock-out keeps it faithful to the anti-opinionated ethos.</p>
<h3>3. Three sibling repos</h3>
<p>KeruOS, kama, kama-packages — separate, sibling by default, each human-sized. Rationale: independent cadence, legible diffs, clear ownership. Paths are overridable via <code>KAMA_DIR</code>/<code>PKGS_DIR</code>.</p>
<h3>4. The ISO carries only the installer</h3>
<p>No prebuilt base image on the disk. The entire system is fetched and compiled during install, with network as a hard gate. Rationale: this is what makes "everything is swappable" real rather than aspirational — power to choose comes from nothing being prebuilt.</p>
<h3>5. All ephemeral build deps (AUR-style)</h3>
<p>Build-time dependencies are compiled, installed, and purged after use (<code>PURGE_TEMP_DEPS=1</code>). Rationale: they never accumulate, so the final system reflects exactly what it needs to run — not what it needed to be built.</p>
<h3>6. The installer auto-starts on boot</h3>
<p>live/init execs install.sh directly; if it exits, an emergency shell catches you. Rationale: "boot → choose → build" should have zero friction, and a user should never be stranded.</p>
<h3>7. The website lives in the OS repo</h3>
<p>For now, the site ships inside KeruOS under <code>web/</code> — plain static HTML, dark, no framework. Rationale: keep it close to the code it documents and framework-free to match the ethos; it can split out when it earns its own repo.</p>
<div class="callout">None of these are dogma — they're recorded because they're decisions, and decisions are meant to be repeatable or revisitble. This page is where revisiting starts.</div>
</div>
</div>
</section>
<footer data-footer></footer>
<noscript><div style="text-align:center;padding:16px">See the <a href="../sitemap.html">sitemap</a> for all pages.</div></noscript>
<script src="../assets/js/include.js" data-base=".."></script>
</body>
</html>