From db6b79edbfca3ab7049af2492acd567b099559f5 Mon Sep 17 00:00:00 2001
From: John Bargman
Date: Wed, 15 Apr 2026 08:23:09 +0000
Subject: agentic ai; is so; fucking cool; omg
---
css/style.css | 353 +
...hroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css | 8 +
...roma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css | 8 +
.../font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css | 4 +
.../main-lmdn1rci18371fnrcqrwga636ip08irz.css | 4 +
...tamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg | 26 +
docs/archive/changelog.html | 471 +
docs/archive/community.html | 118 +
docs/archive/cookbook.html | 127 +
.../cookbook_pinning-codeberg-inputs-in-nix.html | 153 +
...kbook_pinning-darcs-hub-inputs-using-htmlq.html | 133 +
.../cookbook_pinning-fossil-inputs-in-nix.html | 141 +
.../cookbook_pinning-gitlab-inputs-in-nix.html | 157 +
...ookbook_pinning-inputs-with-mirrors-in-nix.html | 183 +
...ook_pinning-microsoft-github-inputs-in-nix.html | 154 +
...ok_setting-hash-algorithm-to-blake3-in-nix.html | 179 +
docs/archive/faqs.html | 469 +
docs/archive/funding.html | 107 +
docs/archive/index.html | 1109 ++
docs/archive/install.html | 238 +
docs/archive/manpage.html | 119 +
docs/archive/manpage_nixtamal-manifest.5.html | 1361 +++
docs/archive/manpage_nixtamal.1.html | 416 +
...hroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css | 8 +
...roma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css | 8 +
.../font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css | 4 +
.../main-lmdn1rci18371fnrcqrwga636ip08irz.css | 4 +
...tamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg | 26 +
docs/archive/organized/changelog/changelog.md | 41 +
docs/archive/organized/community/community.md | 21 +
docs/archive/organized/cookbook/cookbook.md | 17 +
.../pinning-codeberg-inputs-in-nix.md | 23 +
.../pinning-darcs-hub-inputs-using-htmlq.md | 19 +
.../pinning-fossil-inputs-in-nix.md | 19 +
.../pinning-gitlab-inputs-in-nix.md | 25 +
.../pinning-inputs-with-mirrors-in-nix.md | 17 +
.../pinning-microsoft-github-inputs-in-nix.md | 25 +
.../setting-hash-algorithm-to-blake3-in-nix.md | 23 +
docs/archive/organized/faqs/faqs.md | 135 +
docs/archive/organized/funding/funding.md | 17 +
docs/archive/organized/home/home.md | 19 +
docs/archive/organized/index.md | 56 +
docs/archive/organized/install/install.md | 19 +
docs/archive/organized/manpage/manpage.md | 19 +
.../nixtamal-manifest.5/nixtamal-manifest.5.md | 269 +
.../organized/manpage/nixtamal.1/nixtamal.1.md | 55 +
.../real-world-showcase/real-world-showcase.md | 17 +
docs/archive/organized/roadmap/roadmap.md | 17 +
docs/archive/real-world-showcase.html | 182 +
docs/archive/roadmap.html | 161 +
docs/archive/structure.json | 10285 +++++++++++++++++++
docs/inventory.md | 43 +
docs/migration-mapping.md | 53 +
docs/plan.md | 140 +
docs/project-summary.md | 131 +
index.html | 186 +-
js/parallax.js | 61 +
js/webgl-bg.js | 190 +
scripts/create_inventory.py | 178 +
scripts/organize_archive.py | 90 +
scripts/spider.py | 192 +
scripts/test.sh | 111 +
shaders/fragment.glsl | 16 +
shaders/vertex.glsl | 20 +
64 files changed, 18979 insertions(+), 1 deletion(-)
create mode 100644 css/style.css
create mode 100644 docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css
create mode 100644 docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css
create mode 100644 docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css
create mode 100644 docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css
create mode 100644 docs/archive/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg
create mode 100644 docs/archive/changelog.html
create mode 100644 docs/archive/community.html
create mode 100644 docs/archive/cookbook.html
create mode 100644 docs/archive/cookbook_pinning-codeberg-inputs-in-nix.html
create mode 100644 docs/archive/cookbook_pinning-darcs-hub-inputs-using-htmlq.html
create mode 100644 docs/archive/cookbook_pinning-fossil-inputs-in-nix.html
create mode 100644 docs/archive/cookbook_pinning-gitlab-inputs-in-nix.html
create mode 100644 docs/archive/cookbook_pinning-inputs-with-mirrors-in-nix.html
create mode 100644 docs/archive/cookbook_pinning-microsoft-github-inputs-in-nix.html
create mode 100644 docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html
create mode 100644 docs/archive/faqs.html
create mode 100644 docs/archive/funding.html
create mode 100644 docs/archive/index.html
create mode 100644 docs/archive/install.html
create mode 100644 docs/archive/manpage.html
create mode 100644 docs/archive/manpage_nixtamal-manifest.5.html
create mode 100644 docs/archive/manpage_nixtamal.1.html
create mode 100644 docs/archive/organized/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css
create mode 100644 docs/archive/organized/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css
create mode 100644 docs/archive/organized/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css
create mode 100644 docs/archive/organized/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css
create mode 100644 docs/archive/organized/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg
create mode 100644 docs/archive/organized/changelog/changelog.md
create mode 100644 docs/archive/organized/community/community.md
create mode 100644 docs/archive/organized/cookbook/cookbook.md
create mode 100644 docs/archive/organized/cookbook/pinning-codeberg-inputs-in-nix/pinning-codeberg-inputs-in-nix.md
create mode 100644 docs/archive/organized/cookbook/pinning-darcs-hub-inputs-using-htmlq/pinning-darcs-hub-inputs-using-htmlq.md
create mode 100644 docs/archive/organized/cookbook/pinning-fossil-inputs-in-nix/pinning-fossil-inputs-in-nix.md
create mode 100644 docs/archive/organized/cookbook/pinning-gitlab-inputs-in-nix/pinning-gitlab-inputs-in-nix.md
create mode 100644 docs/archive/organized/cookbook/pinning-inputs-with-mirrors-in-nix/pinning-inputs-with-mirrors-in-nix.md
create mode 100644 docs/archive/organized/cookbook/pinning-microsoft-github-inputs-in-nix/pinning-microsoft-github-inputs-in-nix.md
create mode 100644 docs/archive/organized/cookbook/setting-hash-algorithm-to-blake3-in-nix/setting-hash-algorithm-to-blake3-in-nix.md
create mode 100644 docs/archive/organized/faqs/faqs.md
create mode 100644 docs/archive/organized/funding/funding.md
create mode 100644 docs/archive/organized/home/home.md
create mode 100644 docs/archive/organized/index.md
create mode 100644 docs/archive/organized/install/install.md
create mode 100644 docs/archive/organized/manpage/manpage.md
create mode 100644 docs/archive/organized/manpage/nixtamal-manifest.5/nixtamal-manifest.5.md
create mode 100644 docs/archive/organized/manpage/nixtamal.1/nixtamal.1.md
create mode 100644 docs/archive/organized/real-world-showcase/real-world-showcase.md
create mode 100644 docs/archive/organized/roadmap/roadmap.md
create mode 100644 docs/archive/real-world-showcase.html
create mode 100644 docs/archive/roadmap.html
create mode 100644 docs/archive/structure.json
create mode 100644 docs/inventory.md
create mode 100644 docs/migration-mapping.md
create mode 100644 docs/plan.md
create mode 100644 docs/project-summary.md
create mode 100644 js/parallax.js
create mode 100644 js/webgl-bg.js
create mode 100644 scripts/create_inventory.py
create mode 100644 scripts/organize_archive.py
create mode 100644 scripts/spider.py
create mode 100755 scripts/test.sh
create mode 100644 shaders/fragment.glsl
create mode 100644 shaders/vertex.glsl
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..cf0805c
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,353 @@
+/* CSS Custom Properties for Theming */
+:root {
+ --primary-color: #2563eb;
+ --secondary-color: #64748b;
+ --accent-color: #f59e0b;
+ --text-color: #1f2937;
+ --bg-color: #ffffff;
+ --bg-secondary: #f8fafc;
+ --border-color: #e2e8f0;
+ --shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ --font-size-base: 16px;
+ --line-height: 1.6;
+ --spacing-xs: 0.5rem;
+ --spacing-sm: 0.75rem;
+ --spacing-md: 1rem;
+ --spacing-lg: 1.5rem;
+ --spacing-xl: 2rem;
+ --max-width: 1200px;
+ --header-height: 60px;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text-color: #f1f5f9;
+ --bg-color: #0f172a;
+ --bg-secondary: #1e293b;
+ --border-color: #334155;
+ --shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+ }
+}
+
+/* Reset and Base Styles */
+* {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+body {
+ font-family: var(--font-family);
+ font-size: var(--font-size-base);
+ line-height: var(--line-height);
+ color: var(--text-color);
+ background-color: var(--bg-color);
+}
+
+/* Typography */
+h1, h2, h3, h4, h5, h6 {
+ margin-bottom: var(--spacing-md);
+ font-weight: 600;
+}
+
+h1 { font-size: 2.5rem; }
+h2 { font-size: 2rem; }
+h3 { font-size: 1.5rem; }
+h4 { font-size: 1.25rem; }
+
+p {
+ margin-bottom: var(--spacing-md);
+}
+
+a {
+ color: var(--primary-color);
+ text-decoration: none;
+ transition: color 0.2s ease;
+}
+
+a:hover {
+ color: var(--accent-color);
+}
+
+code {
+ background-color: var(--bg-secondary);
+ padding: 0.125rem 0.25rem;
+ border-radius: 4px;
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
+ font-size: 0.875rem;
+}
+
+pre {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-md);
+ border-radius: 8px;
+ overflow-x: auto;
+ margin: var(--spacing-md) 0;
+}
+
+pre code {
+ background: none;
+ padding: 0;
+}
+
+.cta-button {
+ display: inline-block;
+ background-color: var(--primary-color);
+ color: white;
+ padding: var(--spacing-sm) var(--spacing-md);
+ border-radius: 6px;
+ font-weight: 600;
+ transition: background-color 0.2s ease;
+}
+
+.cta-button:hover {
+ background-color: #1d4ed8;
+}
+
+/* Layout */
+.container {
+ max-width: var(--max-width);
+ margin: 0 auto;
+ padding: 0 var(--spacing-md);
+}
+
+/* Header and Navigation */
+header {
+ position: sticky;
+ top: 0;
+ background-color: var(--bg-color);
+ border-bottom: 1px solid var(--border-color);
+ z-index: 100;
+ height: var(--header-height);
+}
+
+nav {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 100%;
+ padding: 0 var(--spacing-md);
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ color: var(--primary-color);
+}
+
+.nav-links {
+ display: flex;
+ list-style: none;
+ gap: var(--spacing-lg);
+}
+
+.nav-links a {
+ padding: var(--spacing-sm);
+ transition: all 0.2s ease;
+}
+
+.nav-links a:hover,
+.nav-links a.active {
+ color: var(--accent-color);
+ border-bottom: 2px solid var(--accent-color);
+}
+
+/* Mobile Navigation */
+.mobile-menu-toggle {
+ display: none;
+ background: none;
+ border: none;
+ font-size: 1.5rem;
+ cursor: pointer;
+}
+
+#mobile-menu {
+ display: none;
+}
+
+#mobile-menu:checked ~ .nav-links {
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: var(--header-height);
+ left: 0;
+ right: 0;
+ background-color: var(--bg-color);
+ border-top: 1px solid var(--border-color);
+ padding: var(--spacing-md);
+}
+
+/* Main Content */
+main {
+ padding-top: var(--spacing-xl);
+}
+
+section {
+ padding: var(--spacing-xl) 0;
+ border-bottom: 1px solid var(--border-color);
+}
+
+section:last-of-type {
+ border-bottom: none;
+}
+
+/* Hero Section */
+.hero {
+ text-align: center;
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-xl) 0;
+}
+
+.hero h1 {
+ margin-bottom: var(--spacing-md);
+}
+
+.hero p {
+ font-size: 1.25rem;
+ margin-bottom: var(--spacing-lg);
+}
+
+/* Content Sections */
+.content-section {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: var(--spacing-lg);
+}
+
+@media (min-width: 768px) {
+ .content-section {
+ grid-template-columns: 1fr 2fr;
+ }
+}
+
+.sidebar {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-lg);
+ border-radius: 8px;
+}
+
+.main-content {
+ padding-left: var(--spacing-lg);
+}
+
+/* Features Grid */
+.features {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: var(--spacing-lg);
+ margin-top: var(--spacing-lg);
+}
+
+.feature-card {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-lg);
+ border-radius: 8px;
+ box-shadow: var(--shadow);
+}
+
+.feature-card h3 {
+ color: var(--primary-color);
+ margin-bottom: var(--spacing-sm);
+}
+
+/* Footer */
+footer {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-xl) 0;
+ text-align: center;
+ border-top: 1px solid var(--border-color);
+}
+
+/* Responsive Design */
+@media (max-width: 768px) {
+ .nav-links {
+ display: none;
+ }
+
+ .mobile-menu-toggle {
+ display: block;
+ }
+
+ #mobile-menu:checked ~ .nav-links {
+ display: flex;
+ }
+}
+
+ h1 { font-size: 2rem; }
+ h2 { font-size: 1.75rem; }
+
+ .container {
+ padding: 0 var(--spacing-sm);
+ }
+
+ section {
+ padding: var(--spacing-lg) 0;
+ }
+}
+
+@media (max-width: 480px) {
+ .hero h1 {
+ font-size: 1.75rem;
+ }
+
+ .features {
+ grid-template-columns: 1fr;
+ }
+}
+
+/* Parallax Styles */
+[data-speed] {
+ will-change: transform;
+ backface-visibility: hidden;
+ transform: translateZ(0);
+}
+
+@media (max-width: 768px) {
+ [data-speed] {
+ will-change: auto;
+ transform: none !important;
+ }
+}
+
+/* WebGL Background Canvas */
+#webgl-bg {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ z-index: -1;
+ pointer-events: none;
+}
+
+/* Accessibility */
+@media (prefers-reduced-motion: reduce) {
+ html {
+ scroll-behavior: auto;
+ }
+
+ * {
+ transition: none;
+ }
+
+ [data-speed] {
+ will-change: auto;
+ }
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
\ No newline at end of file
diff --git a/docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css b/docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css
new file mode 100644
index 0000000..4c21b9a
--- /dev/null
+++ b/docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css
@@ -0,0 +1,8 @@
+/*!
+SPDX-FileCopyrightText: 2021–2026 toastal
+SPDX-License-Identifier: MPL-2.0
+
+sugilite256, an 8-bit color scheme wiþ extra purple
+Support ð project: https://toast.al/funding
+*/
+.chroma .err,pre.code .err{color:#eee;background-color:red}.chroma .k,pre.code .k,.chroma .kd,pre.code .kd,.chroma .kn,pre.code .kn,.chroma .kp,pre.code .kp,.chroma .kr,pre.code .kr,.chroma .kr,pre.code .kr{color:#875fff;font-weight:700}.chroma .na,pre.code .na{color:#af87ff}.chroma .nt,pre.code .nt{color:#af5fff}.chroma .bp,pre.code .bp,.chroma .p,pre.code .p{color:#b2b2b2}.chroma .ld,pre.code .ld{color:#87afff}.chroma .s,pre.code .s,.chroma .sa,pre.code .sa,.chroma .sb,pre.code .sb{color:#ffafaf}.chroma .sc,pre.code .sc{color:#d700af}.chroma .sd,pre.code .sd,.chroma .s2,pre.code .s2,.chroma .se,pre.code .se,.chroma .sh,pre.code .sh,.chroma .si,pre.code .si,.chroma .sr,pre.code .sr{color:#ffafaf}.chroma .ss,pre.code .ss{color:#d70087;font-weight:700}.chroma .m,pre.code .m,.chroma .mb,pre.code .mb,.chroma .mf,pre.code .mf,.chroma .mh,pre.code .mh,.chroma .mi,pre.code .mi,.chroma .il,pre.code .il,.chroma .mo,pre.code .mo{color:#87afff}.chroma .nc,pre.code .nc{color:#d7afff}.chroma .kt,pre.code .kt{color:#d787ff}.chroma .n,pre.code .n{color:#af87ff}.chroma .nl,pre.code .nl{color:#d70087;font-weight:700}.chroma .nn,pre.code .nn{color:#d787ff}.chroma .nb,pre.code .nb{color:#d70087;font-weight:700}.chroma .o,pre.code .o{color:#875fd7}.chroma .gp,pre.code .gp{color:#af87ff;-webkit-user-select:none;user-select:none}.chroma .go,pre.code .go{color:#ff87af}.chroma .cl,pre.code .cl{color:#b2b2b2}.chroma .c,pre.code .c,.chroma .ch,pre.code .ch,.chroma .cm,pre.code .cm,.chroma .c1,pre.code .c1,.chroma .cs,pre.code .cs{color:#8a8a8a}.chroma .cp,pre.code .cp,.chroma .cpf,pre.code .cpf{color:#ff5fd7}.chroma .gh,pre.code .gh,.chroma .gs,pre.code .gs{font-weight:700}.chroma .gu,pre.code .gu{font-style:italic}.chroma .gl,pre.code .gl{text-decoration-line:underline}
\ No newline at end of file
diff --git a/docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css b/docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css
new file mode 100644
index 0000000..847f694
--- /dev/null
+++ b/docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css
@@ -0,0 +1,8 @@
+/*!
+SPDX-FileCopyrightText: 2021–2026 toastal
+SPDX-License-Identifier: MPL-2.0
+
+sugilite256, an 8-bit color scheme wiþ extra purple
+Support ð project: https://toast.al/funding
+*/
+.chroma .err,pre.code .err{color:#000;background-color:red}.chroma .k,pre.code .k,.chroma .kd,pre.code .kd,.chroma .kn,pre.code .kn,.chroma .kp,pre.code .kp,.chroma .kr,pre.code .kr,.chroma .kr,pre.code .kr{color:#5f00d7;font-weight:700}.chroma .na,pre.code .na{color:#5f00af}.chroma .nt,pre.code .nt{color:#5f005f}.chroma .bp,pre.code .bp,.chroma .p,pre.code .p{color:#444}.chroma .ld,pre.code .ld{color:#5f87ff}.chroma .s,pre.code .s,.chroma .sa,pre.code .sa,.chroma .sb,pre.code .sb{color:#af5f5f}.chroma .sc,pre.code .sc{color:#af00d7}.chroma .sd,pre.code .sd,.chroma .s2,pre.code .s2,.chroma .se,pre.code .se,.chroma .sh,pre.code .sh,.chroma .si,pre.code .si,.chroma .sr,pre.code .sr{color:#af5f5f}.chroma .ss,pre.code .ss{color:#af005f;font-weight:700}.chroma .m,pre.code .m,.chroma .mb,pre.code .mb,.chroma .mf,pre.code .mf,.chroma .mh,pre.code .mh,.chroma .mi,pre.code .mi,.chroma .il,pre.code .il,.chroma .mo,pre.code .mo{color:#5f87ff}.chroma .nc,pre.code .nc{color:#5f0087}.chroma .kt,pre.code .kt{color:#8700af}.chroma .n,pre.code .n{color:#5f00af}.chroma .nl,pre.code .nl{color:#af005f;font-weight:700}.chroma .nn,pre.code .nn{color:#8700af}.chroma .nb,pre.code .nb{color:#af005f;font-weight:700}.chroma .o,pre.code .o{color:#5f00ff}.chroma .gp,pre.code .gp{color:#5f00af;-webkit-user-select:none;user-select:none}.chroma .go,pre.code .go{color:#d700d7}.chroma .cl,pre.code .cl{color:#444}.chroma .c,pre.code .c,.chroma .ch,pre.code .ch,.chroma .cm,pre.code .cm,.chroma .c1,pre.code .c1,.chroma .cs,pre.code .cs{color:#6c6c6c}.chroma .cp,pre.code .cp,.chroma .cpf,pre.code .cpf{color:#af00d7}.chroma .gh,pre.code .gh,.chroma .gs,pre.code .gs{font-weight:700}.chroma .gu,pre.code .gu{font-style:italic}.chroma .gl,pre.code .gl{text-decoration-line:underline}
\ No newline at end of file
diff --git a/docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css b/docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css
new file mode 100644
index 0000000..afbfdcd
--- /dev/null
+++ b/docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2026 toastal
+ * SPDX-License-Identifier: MPL-2.0 */
+@font-face{font-family:League Mono;font-style:normal;font-weight:100 900;font-stretch:50 200;src:local(LeagueMono-VF),local(League Mono VF),url(/asset/league-mono/LeagueMono-VF.woff2)format("woff2-variations")}:root{--font-mono:"League Mono", monospace;--font-body:"League Mono", system-ui, sans-serif;--font-display:"League Mono", serif}
\ No newline at end of file
diff --git a/docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css b/docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css
new file mode 100644
index 0000000..8fe6271
--- /dev/null
+++ b/docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2025–2026 toastal
+ * SPDX-License-Identifier: MPL-2.0 */
+:root{--font-size-base:1rem;--line-height-ratio:1.6;--scale-ratio:1.2;--size-rhyðm-unit:calc(var(--font-size-base) * var(--line-height-ratio));--font-size--2:.694444rem;--line-height--2:2.304;--font-size--1:.833333rem;--line-height--1:1.92;--font-size-0:1rem;--line-height-0:1.6;--font-size-1:1.2rem;--line-height-1:2.66667;--font-size-2:1.44rem;--line-height-2:2.22222;--font-size-3:1.728rem;--line-height-3:1.85185;--font-size-4:2.0736rem;--line-height-4:2.31481;--font-size-5:2.48832rem;--line-height-5:1.92901;--size-rhyðm-0_25:calc(var(--size-rhyðm-unit) * .25);--size-rhyðm-0_5:calc(var(--size-rhyðm-unit) * .5);--size-rhyðm-0_75:calc(var(--size-rhyðm-unit) * .75);--size-rhyðm-1:calc(var(--size-rhyðm-unit) * 1);--size-rhyðm-1_5:calc(var(--size-rhyðm-unit) * 1.5);--size-rhyðm-2:calc(var(--size-rhyðm-unit) * 2)}html{font-size:100%}body{font-size:var(--font-size-base);line-height:var(--line-height-0);text-rendering:optimizelegibility}h1{font-size:var(--font-size-5);line-height:var(--line-height-5);margin-block:var(--size-rhyðm-2) var(--size-rhyðm-1)}h2{font-size:var(--font-size-4);line-height:var(--line-height-4);margin-block:var(--size-rhyðm-2) var(--size-rhyðm-1)}h3{font-size:var(--font-size-3);line-height:var(--line-height-3);margin-block:var(--size-rhyðm-1_5) var(--size-rhyðm-0_75)}h4{font-size:var(--font-size-2);line-height:var(--line-height-2);margin-block:var(--size-rhyðm-1_5) var(--size-rhyðm-0_5)}h5{font-size:var(--font-size-1);line-height:var(--line-height-1);margin-block:var(--size-rhyðm-1) var(--size-rhyðm-0_5)}h6{font-size:var(--font-size-0);line-height:var(--line-height-0);margin-block:var(--size-rhyðm-1) var(--size-rhyðm-0_5);font-weight:600}p,ul,ol,dl,pre,blockquote,figure,table{margin-block:var(--size-rhyðm-1)}p+p{margin-top:var(--size-rhyðm-1)}li{margin-block:var(--size-rhyðm-0_25)}hr{margin-block:var(--size-rhyðm-2);border:0;border-top:1px solid}callout,figcaption,small,code,pre{font-size:var(--font-size--1);line-height:var(--line-height--1)}pre{padding:var(--size-rhyðm-1);overflow-x:auto}embed,iframe,img,video,svg{max-width:100%;height:auto;margin-block:var(--size-rhyðm-1);display:block}:root[data-debug~=rhyðm]{background-image:repeating-linear-gradient(to bottom, color-mix(in oklab, currentColor 15%, transparent), color-mix(in oklab, currentColor 15%, transparent) 1px, transparent 1px, transparent var(--size-rhyðm-unit));background-size:100% var(--size-rhyðm-unit)}:root[data-debug~=rhyðm-half]{background-image:repeating-linear-gradient(to bottom, color-mix(in oklab, currentColor 10%, transparent), color-mix(in oklab, currentColor 10%, transparent) 1px, transparent 1px, transparent calc(var(--size-rhyðm-unit) / 2))}:root{--page-pad:clamp(1.4rem, 3vw, 3.2rem)}html,body{block-size:100%}body{margin:0}:where(callout,canvas,img,picture,video,svg){display:block}:where(canvas,code,img,kbd,picture,pre,samp,svg,table,var,video){max-inline-size:100%}.DocWrapper{flex-flow:column;display:flex}.Main{flex-grow:1}.Main,.Banner,.Footer{padding:calc(.75*var(--page-pad)) var(--page-pad)}.Headline :first-child{margin-block-start:0}pre,.table-wrapper,.Callout,.Callout-title,.Quoteblock{margin-inline:calc(-.375*var(--page-pad));inline-size:calc(100% + .75*var(--page-pad))}.table-wrapper{overflow:auto}pre,.Callout,.Callout-title,.Quoteblock{padding:calc(.375*var(--page-pad)) calc(.75*var(--page-pad))}.Callout:has(.Callout-title){padding-block-start:0}.Callout-title{margin-inline:calc(-.75*var(--page-pad));inline-size:calc(100% + 1.5*var(--page-pad))}@media screen and (width>=51em){@supports (display:grid){.DocWrapper{row-gap:var(--page-pad);column-gap:calc(var(--page-pad)*1.5);grid-template-rows:minmax(max-content,1fr) min-content;grid-template-columns:minmax(1.6rem,1fr) minmax(6rem,8rem) minmax(0,65rem) minmax(1.6rem,1fr);display:grid}.Main,.Banner,.Footer{padding-inline:0}.Banner-wrapper{grid-area:1/2/3/3}.Banner{position:sticky;top:0}.Main{grid-row:1/2}.Footer{grid-row:2/3}.Main,Footer{grid-column:3/4}.Navigation{text-align:end}}}*,:before,:after{box-sizing:border-box}:where(:root){--color-bg:Canvas;--color-text:CanvasText;--color-code-bg:color-mix(in lab, Canvas 95%, CanvasText 5%);--font-mono:"League Mono", monospace;--font-body:"League Mono", system-ui, sans-serif;--font-display:"League Mono", serif;font-family:var(--font-body);tab-size:3}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-variant-ligatures:common-ligatures;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;hanging-punctuation:force-end;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:where(input,button,textarea,select){font:inherit}:where(code,kbd,pre,samp,var){font-variant-ligatures:none;text-transform:none;-webkit-hyphens:none;hyphens:none}abbr[title]{-webkit-text-decoration-color:color-mix(in lab, currentColor, transparent);text-decoration-color:color-mix(in lab, currentColor, transparent)}code,kbd,pre,samp,var,.Callout{background-color:var(--color-code-bg)}code,kbd,pre,samp,var{font-family:var(--font-mono)}code,kbd,samp,var{padding-block:.125em;padding-inline:.25em}h1 code,h1 kbd,h1 samp,h1 var,h2 code,h2 kbd,h2 samp,h2 var,h3 code,h3 kbd,h3 samp,h3 var,h4 code,h4 kbd,h4 samp,h4 var,h5 code,h5 kbd,h5 samp,h5 var,h6 code,h6 kbd,h6 samp,h6 var{font-family:var(--font-body)}h1 a.toc-backref,h2 a.toc-backref,h3 a.toc-backref,h4 a.toc-backref,h5 a.toc-backref,h6 a.toc-backref{color:inherit}h1{font-weight:800;font-stretch:150%}h1:first-letter{letter-spacing:-.04375em;font-stretch:200%}h3{font-weight:250}caption,dt,summary{inline-size:100%;font-weight:600}caption,.Callout-title{background:var(--color-text);color:var(--color-bg);text-transform:uppercase;font-stretch:80%}dt{font-style:italic}.DocWrapper{min-block-size:100%}.Main,.Footer{max-inline-size:80ch}.Banner-separator{display:none}.Footer{opacity:.666667;font-stretch:66.67%}.Headline{margin-block-end:var(--page-pad)}.Headline [itemprop=headline]{margin-block-end:0}.Headline [itemprop=alternativeHeadline]{margin-block:0 var(--size-rhyðm-0_5);color:color-mix(in lab, currentColor 75%, transparent 25%);font-size:var(--font-size-2);line-height:var(--line-height-2);font-stretch:80%}.Callout{border:2px dotted}.Callout-title{display:block}blockquote{position:relative}blockquote:before{content:"❝";z-index:-1;opacity:.2;text-align:end;width:1em;height:1em;margin-inline-start:-1.125em;font-size:4em;line-height:1;position:absolute;top:0;left:0}.Quoteblock>blockquote{margin-inline:0}.Quoteblock>figcaption{font-weight:600;font-stretch:70%}#table-of-contents{border:1px inset;padding:1em 1.5em;font-size:.9em}#table-of-contents p{margin:0}#table-of-contents>:first-child{margin-block-start:0}#table-of-contents>:last-child{margin-block-end:0}.footnote-list{border-top:1px dashed canvastext;grid-template-columns:min-content auto;align-items:baseline;gap:1em 1.5em;padding-top:1.5em;font-size:.8em;display:grid}.footnote-list .footnote{grid-template-columns:subgrid;grid-column:1/3;grid-template-rows:masonry;align-items:start;display:grid}.footnote-list .footnote>.label,.footnote-list .footnote>.backrefs{grid-column:1/2;justify-self:end}.footnote-list .footnote>.label{grid-row:1/2;font-weight:550}.footnote-list .footnote>.backrefs{grid-row:2/3;font-weight:350}.footnote-list .footnote>p{grid-area:1/2/3/3;margin:0}a[href].bad-proprietary{-webkit-text-decoration:underline wavy red;text-decoration:underline wavy red}.Banner{justify-content:space-between;align-items:flex-end;gap:calc(.5*var(--page-pad));border-block-end:.5px solid;flex-flow:wrap;display:flex}.Banner a{color:inherit}.Banner a:not(:hover):not(:focus-within){text-decoration:none}.Banner-flair{display:none}.SiteLogo{flex:none}.SiteLogo-image{fill:currentColor;inline-size:100%;max-inline-size:10rem;margin:0}.Navigation{flex-flow:wrap;gap:.5em 1em;display:flex}.Navigation-item{font-variant:small-caps}@media screen and (width>=51em){@supports (display:grid){.Banner{border-block-end:none}.SiteLogo{flex-shrink:1}.Navigation{flex-flow:column;inline-size:100%;display:flex}}}table.comparison{border-collapse:separate;font-size:90%;position:relative}table.comparison thead thead{z-index:2;position:sticky;top:0}table.comparison thead th{z-index:1;position:sticky;top:0}table.comparison thead th:first-child{z-index:2;background:canvas;background:var(--color-bg);position:sticky;left:0}table.comparison thead th:not(:first-child){text-align:center;background:#eee;background:color-mix(in lab, Canvas 94%, CanvasText 6%)}table.comparison thead p{margin-block:.125em}table.comparison tbody td:first-child{background:canvas;background:var(--color-bg);position:sticky;left:0}table.comparison tbody tr:nth-child(odd) td:first-child{background:color-mix(in lab, Canvas 96.25%, CanvasText 3.75%)}table.comparison tbody td:not(:first-child){text-align:center;background:#eee;background:color-mix(in lab, Canvas 94%, CanvasText 6%)}table.comparison tbody td.good{background:#afd700}table.comparison tbody td.somewhat{background:#ffd787}table.comparison tbody td.bad{background:#ff5f5f}table.comparison tbody td.doesn’t-apply{color:color-mix(in lab, CanvasText 60%, Canvas 40%)}@media (prefers-color-scheme:dark){table.comparison tbody td:not(:first-child){background:#262626;background:color-mix(in lab, Canvas 94%, CanvasText 6%)}table.comparison tbody td.good{background:#005f00}table.comparison tbody td.somewhat{background:#875f00}table.comparison tbody td.bad{background:#5f0000}}@font-face{font-family:League Mono;font-style:normal;font-weight:100 900;font-stretch:50 200;src:local(LeagueMono-VF),local(League Mono VF),url(/asset/league-mono/LeagueMono-VF.woff2)format("woff2-variations")}:root{--font-mono:"League Mono", monospace;--font-body:"League Mono", system-ui, sans-serif;--font-display:"League Mono", serif}
\ No newline at end of file
diff --git a/docs/archive/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg b/docs/archive/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg
new file mode 100644
index 0000000..13a530a
--- /dev/null
+++ b/docs/archive/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg
@@ -0,0 +1,26 @@
+
+
+ Nixtamal Logo
+
+
+
+
+ Nixtamal Logo
+
+
+ toastal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/archive/changelog.html b/docs/archive/changelog.html
new file mode 100644
index 0000000..810aec5
--- /dev/null
+++ b/docs/archive/changelog.html
@@ -0,0 +1,471 @@
+
+
+
+
+
+
+
+
+
+
+
+ Changelog | Nixtamal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.4.1 (2026-04-04)
+
+
+
+
+ Donât just failwith on mismatched inputs but provide a proper error &
+message to help user recover (thanks to rhelmot for reporting)
+
+
+
+
+ lock --force now ignore the lockfile when trying to meld manifest Ã
+lockfile inputs since the idea is to always override the input; for this
+reason, it also helps with the input mismatch issue
+
+
+
+
+
+
+ 1.4.0 (2026-04-01)
+
+
+
+
+
+ 1.3.0 (2026-03-29)
+
+
+
+
+ BREAKING: --nixpkgs-branch on setup has been renamed --nixpkgs-channel
+
+
+
+
+ add --use-channels flag to use channels from channels.nixos.org which are
+community-owned & more efficient (LZMA compression)âââhowever, unlike
+the default of using the Git archive, the channels option doesnât provide as
+good of a template for users to remix, so it wonât be the default (thanks
+WeetHet for the idea)
+
+
+
+
+ Fix bug where VCS files were getting clobbered instead of appending
+
+
+
+
+
+
+ 1.2.0 (2026-03-26)
+
+
+
+
+ Fix bug in Gitâs default ls-remate command for branches (thanks
+tetov )
+
+
+
+
+ Truly split the Nixpkg + set outputsToInstall
+
+
+
+
+ nixtamal.default in overlay uses symlinkJoin on those outputs
+
+
+
+
+ Add a check for BLAKE3 hash support if usedâââwhich touches a file to avoid
+running the tests on each invocationâ¦
+
+
+
+
+ â¦Add ignore file updates on set-up (assumes you set up the VCS first)
+with files you donât want in your history
+
+
+
+
+
+
+ 1.1.5 (2026-03-20)
+
+
+
+
+ Split bin/lib in the Nix package, which when using nixtamal.bin
+significantly reduces size (thanks to vbgl for the upstream fix)
+
+
+
+
+ Fix bug where errors were handing back the result of stdout instead of stderr
+
+
+
+
+
+
+ 1.1.4 (2026-03-09)
+
+
+
+
+
+ 1.1.3 (2026-03-06)
+
+
+
+
+
+ 1.1.2 (2026-02-19)
+
+
+
+
+
+ 1.1.1 (2026-02-16)
+
+
+
+
+
+ 1.1.0 (2026-02-15)
+
+
+
+
+ Make changes to be compatible with Cmdliner 2.x (in NixOS staging)
+
+
+
+
+ Fix manifest file errors should provide better context
+
+
+
+
+ Fix bug where missing lockfile would errors instead of write a new one
+
+
+
+
+ Fix TUI output with UTF-8
+
+
+
+
+
+
+ 1.0.0 (2026-02-13)
+
+
+
+
+
+ 0.3.1-beta (2026-02-07)
+
+
+
+
+
+ 0.3.0-beta (2026-02-07)
+
+
+
+
+
+ 0.2.1-beta (2026-02-03)
+
+
+
+
+
+ 0.2.0-beta (2026-02-02)
+
+
+
+
+ Update schema from 0.4.0 â 0.5.0 (will require manual migration
+[beta_man_migr] )
+
+
+
+
+ New feature: fetch time
+
+
+
+
+ Git: now uses the ref in the lockfile to properly get the rev when fetching
+
+
+
+
+ Git: supports tags (convenience, previously used rev overloaded like Nix)
+
+
+
+
+ Loader: renaming for clarity nixpkgs â bootstrap-nixpkgs
+
+
+
+
+
+
+ Fetch at either eval or build time (builtins.fetch* vs. pkgs.fetch*)
+
+
+
+
+ Fix typo in fetch-git block which prevented Git usage
+
+
+
+
+ Fix nix builds to work on Darwin (thanks WeeHet )
+
+
+
+
+ Remove that Nix code to remove stray OCaml references (as it doesnât work as
+is does in other OCaml projects, & upstream Nix OCaml builds need to be looked
+at)
+
+
+
+
+
+
+ 0.1.1-beta (2026-01-27)
+
+
+
+
+ Add CHANGELOG.rst
+
+
+
+
+ Add {CHANGELOG,README}.rst to Nixtamalâs source filter
+
+
+
+
+ Move nixtamal-manifest.schema â nitxtamal/schema/manifest.kdl
+
+
+
+
+ Tweak Nix code to wrap the binary with the $PATH for prefetchers
+
+
+
+
+ Tweak Nix code to remove stray OCaml references
+
+
+
+
+
+
[ beta_man_migr ]
+
+
+
+ rm ${NIXTAMAL_DIRECTORY:-nix/tamal}/{lock.json,default.nix}
+
+
+
+
+ nitamal tweak to bump version in manifest.kdl
+
+
+
+
+ re-run nixtamal lock to generate a new lockfile
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/archive/community.html b/docs/archive/community.html
new file mode 100644
index 0000000..dd1a7ed
--- /dev/null
+++ b/docs/archive/community.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+ Community | Nixtamal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Community
+
+
+ Chatroom
+
+
+
+
+ Community is in an XMPP chatroom (MUC ) with future hopes to have an IRC gateway.
+Join @ nixtamal@chat.toastal.in.th .
+
+
+ Tip
+
+ Donât know about XMPP ?
+Check out JoinJabber for information on how to create accountsâââor learn how to set up your own lightweight, decentralized server!
+
+
+
+
+
+
+
+
+
diff --git a/docs/archive/cookbook.html b/docs/archive/cookbook.html
new file mode 100644
index 0000000..284f15b
--- /dev/null
+++ b/docs/archive/cookbook.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+ Cookbook | Nixtamal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+