Commit fe4135c
Eric Bower
·
2026-05-09 13:01:19 -0400 EDT
parent e08a892
docs: copy
1 files changed,
+33,
-14
+33,
-14
1@@ -516,7 +516,7 @@ code {
2 ============================================================ -->
3 <nav>
4 <div class="container">
5- <div class="logo">pici <span>— terminal-first CI</span></div>
6+ <div class="logo">pici <span>: terminal-first CI</span></div>
7 <ul>
8 <li><a href="#how">How It Works</a></li>
9 <li><a href="#infra">Infra</a></li>
10@@ -565,7 +565,7 @@ code {
11 <span class="dot red"></span>
12 <span class="dot yellow"></span>
13 <span class="dot green"></span>
14- <span style="margin-left: 0.5rem;">ci-myrepo-test — build log</span>
15+ <span style="margin-left: 0.5rem;">ci-myrepo-test: build log</span>
16 </div>
17 <div class="terminal-body">
18 <div class="output">Line 1847: ...</div>
19@@ -594,7 +594,7 @@ code {
20 <div class="two-col">
21 <div>
22 <p>
23- Every build step in pici runs as a <strong>real terminal session</strong> — a PTY you can attach to.
24+ Every build step in pici runs as a <strong>real terminal session</strong>: a PTY you can attach to.
25 No "enable debugging" flag. No "re-run with SSH" button. No waiting for a tunnel.
26 </p>
27 <p>
28@@ -602,10 +602,10 @@ code {
29 inspect the environment, fix the issue. You're already there.
30 </p>
31 <ul class="check-list">
32- <li><code>zmx attach ci.myrepo.test</code> — you're in</li>
33+ <li><code>zmx attach ci.myrepo.test</code> to jump in</li>
34 <li>Press <code>↑</code> to rerun the failing command</li>
35 <li>Inspect files, env vars, network state</li>
36- <li>No debug mode — it's just a terminal</li>
37+ <li>No debug mode. It's just a terminal.</li>
38 </ul>
39 </div>
40 <div>
41@@ -639,7 +639,7 @@ code {
42 <div><span class="comment">#!/usr/bin/env bash</span></div>
43 <div><span class="cmd">set -euo pipefail</span></div>
44 <div> </div>
45- <div><span class="comment"># These run in parallel — no config needed</span></div>
46+ <div><span class="comment"># These run in parallel, no config needed</span></div>
47 <div><span class="cmd">zmx run lint docker run golangci-lint run</span></div>
48 <div><span class="info"> → started session: ci.myrepo.lint</span></div>
49 <div> </div>
50@@ -769,12 +769,31 @@ code {
51 </p>
52 <div style="text-align:center; margin-top: 1rem;">
53 <span style="background: var(--surface); padding: 0.3rem 0.8rem; border-radius: 4px; font-size: 0.85rem; color: var(--yellow);">
54- Bring your own isolation — docker, namespaces, bare metal. You choose.
55+ Bring your own isolation: docker, namespaces, bare metal. You choose.
56 </span>
57 </div>
58 </div>
59 </section>
60
61+<!-- ============================================================
62+ PHILOSOPHY
63+ ============================================================ -->
64+<section id="philosophy">
65+ <div class="container" style="max-width: 640px; margin: 0 auto; text-align: center;">
66+ <p class="section-label">Who It's For</p>
67+ <h2 style="justify-content: center;">CI that works for you, not against you.</h2>
68+ <p>
69+ pici is built for individuals and small teams who want to move fast. You write a bash
70+ script, you push your code, your build runs, and if something breaks you jump into the
71+ terminal and fix it. No YAML labyrinths, no approval workflows, no 400-page admin guide.
72+ </p>
73+ <p>
74+ We're not building enterprise CI. You won't find SSO, RBAC, or audit logs here.
75+ What you will find is a system that gets out of your way and lets you ship.
76+ </p>
77+ </div>
78+</section>
79+
80 <!-- ============================================================
81 POWERED BY deploy.pico.sh
82 ============================================================ -->
83@@ -785,7 +804,7 @@ code {
84 <div class="two-col">
85 <div>
86 <p>
87- <strong>ci.pico.sh</strong> runs on <strong>deploy.pico.sh</strong> — our SSH VM service
88+ <strong>ci.pico.sh</strong> runs on <strong>deploy.pico.sh</strong>: our SSH VM service
89 on hardware we own. Not AWS. Not GCP. Not a cloud provider.
90 </p>
91 <p>
92@@ -797,10 +816,10 @@ code {
93 The same platform that runs your CI runs your apps.
94 </p>
95 <ul class="check-list">
96- <li>Our hardware — not a hyperscaler</li>
97+ <li>Our hardware, not a hyperscaler</li>
98 <li>Docker Compose via <code>git push</code></li>
99 <li>Expose HTTP services with compose labels</li>
100- <li>Limited inventory — when it's gone, it's gone</li>
101+ <li>Limited inventory: when it's gone, it's gone</li>
102 </ul>
103 </div>
104 <div class="terminal">
105@@ -848,7 +867,7 @@ code {
106 <div class="feature-card">
107 <h3>AI-Agent Friendly</h3>
108 <p>
109- Terminal workflows, rsync + SSH pubsub, JSONL status streams — everything an agent
110+ Terminal workflows, rsync + SSH pubsub, JSONL status streams. Everything an agent
111 needs to trigger builds, monitor progress, and attach to failures. No OAuth flows,
112 no API rate limits, no webhooks. An agent can start as many jobs as it wants
113 and read results as structured text.
114@@ -866,7 +885,7 @@ code {
115 <h3>Static Site Artifacts</h3>
116 <p>
117 Build artifacts are plain HTML + CSS. No JavaScript. No app server. No build step.
118- Serve the directory with any static host — nginx, s3, pgs.sh, <code>python -m http.server</code>.
119+ Serve the directory with any static host: nginx, s3, pgs.sh, <code>python -m http.server</code>.
120 Zero runtime dependencies.
121 </p>
122 </div>
123@@ -927,12 +946,12 @@ code {
124 <div class="error">FAIL myapp/api (14.2s)</div>
125 <div class="error">Error: connection refused</div>
126 <div> </div>
127- <div class="comment"># you're in the session — inspect freely</div>
128+ <div class="comment"># you're in the session, inspect freely</div>
129 <div><span class="prompt">$ </span><span class="cmd">cat .env</span></div>
130 <div class="output">DB_HOST=postgres.internal:5432</div>
131 <div><span class="prompt">$ </span><span class="cmd">nc -zv postgres.internal 5432</span></div>
132 <div class="error">Connection refused</div>
133- <div><span class="comment"># ↑ found it — wrong hostname</span></div>
134+ <div><span class="comment"># ↑ found it: wrong hostname</span></div>
135 <div><span class="comment"># ↑ press ↑ to rerun the test after fixing</span></div>
136 </div>
137 </div>