forgedock 1.0.16 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +54 -3
  2. package/bin/cross-publish.mjs +344 -0
  3. package/bin/forgedock.mjs +2205 -541
  4. package/bin/github-app-manifest.json.license +2 -0
  5. package/bin/hooks/session-start.mjs +4 -5
  6. package/bin/registry.mjs +20 -0
  7. package/bin/tui.mjs +172 -96
  8. package/commands/adopt.md +433 -0
  9. package/commands/analytics.md +2 -0
  10. package/commands/audit-agents.md +2 -0
  11. package/commands/audit.md +2 -0
  12. package/commands/autopilot.md +77 -0
  13. package/commands/changelog.md +354 -0
  14. package/commands/cleanup.md +2 -0
  15. package/commands/compat-audit.md +330 -0
  16. package/commands/deploy-info.md +6 -5
  17. package/commands/design-bench.md +176 -0
  18. package/commands/design-render-critique-loop.md +103 -0
  19. package/commands/design.md +259 -0
  20. package/commands/diagnose.md +483 -0
  21. package/commands/explain.md +349 -0
  22. package/commands/forge-stats.md +2 -0
  23. package/commands/forgedock-init.md +2 -0
  24. package/commands/geo-audit.md +2 -0
  25. package/commands/incident-response.md +2 -0
  26. package/commands/issue.md +9 -3
  27. package/commands/milestone.md +2 -0
  28. package/commands/optimize.md +411 -0
  29. package/commands/orchestrate.md +239 -0
  30. package/commands/pipeline-health.md +60 -1
  31. package/commands/qa-sweep.md +39 -2
  32. package/commands/quality-gate.md +67 -0
  33. package/commands/replay.md +263 -0
  34. package/commands/resume.md +264 -0
  35. package/commands/review-pr-agents.md +5 -1
  36. package/commands/review-pr-staging.md +160 -2
  37. package/commands/review-pr.md +85 -3
  38. package/commands/rollback.md +2 -0
  39. package/commands/scope.md +280 -0
  40. package/commands/security-audit.md +2 -0
  41. package/commands/status.md +262 -0
  42. package/commands/sync-ecosystem.md +2 -0
  43. package/commands/test-gate.md +929 -0
  44. package/commands/validate.md +2 -0
  45. package/commands/work-on/build/architect.md +128 -18
  46. package/commands/work-on/build/context.md +130 -17
  47. package/commands/work-on/build/implement.md +7 -3
  48. package/commands/work-on/build/validate.md +2 -0
  49. package/commands/work-on/build.md +32 -7
  50. package/commands/work-on/close.md +85 -0
  51. package/commands/work-on/decompose.md +2 -0
  52. package/commands/work-on/investigate.md +30 -3
  53. package/commands/work-on/review.md +13 -1
  54. package/commands/work-on-monolithic.md +2 -0
  55. package/commands/work-on.md +676 -38
  56. package/docs/BRAND.md +51 -0
  57. package/docs/CI.md +177 -0
  58. package/docs/CONFIG.md +94 -0
  59. package/docs/FORGE-PROTOCOL.md +324 -0
  60. package/docs/articles/b-vs-c-baseline.md +210 -0
  61. package/docs/articles/full-abc-benchmark.md +205 -0
  62. package/docs/articles/per-repo-adaptive-scripts-token-savings.md +174 -0
  63. package/docs/articles/selective-spec-loading-token-savings.md +140 -0
  64. package/docs/claude-breakpoints.json +47 -0
  65. package/docs/design/abc-benchmark.md +195 -0
  66. package/docs/design/design-architect-rationale.md +123 -0
  67. package/docs/design/design-memory.md +61 -0
  68. package/docs/design/design-spec-schema.md +248 -0
  69. package/docs/design/design-system-lint.md +150 -0
  70. package/docs/design/divergent-generation.md +106 -0
  71. package/docs/design/effects-appropriateness.md +133 -0
  72. package/docs/design/fixtures/briefs/README.md +47 -0
  73. package/docs/design/fixtures/briefs/cadence.md +39 -0
  74. package/docs/design/fixtures/briefs/plume.md +39 -0
  75. package/docs/design/fixtures/briefs/slipstream.md +39 -0
  76. package/docs/design/fixtures/briefs/tender.md +39 -0
  77. package/docs/design/fixtures/briefs/voltage.md +39 -0
  78. package/docs/design/fixtures/runs/b-vs-c-baseline/cadence/arm-b/run-1.html +364 -0
  79. package/docs/design/fixtures/runs/b-vs-c-baseline/cadence/arm-b/run-2.html +420 -0
  80. package/docs/design/fixtures/runs/b-vs-c-baseline/cadence/arm-b/run-3.html +506 -0
  81. package/docs/design/fixtures/runs/b-vs-c-baseline/plume/arm-b/run-1.html +611 -0
  82. package/docs/design/fixtures/runs/b-vs-c-baseline/plume/arm-b/run-2.html +594 -0
  83. package/docs/design/fixtures/runs/b-vs-c-baseline/plume/arm-b/run-3.html +817 -0
  84. package/docs/design/fixtures/runs/b-vs-c-baseline/runs.json +175 -0
  85. package/docs/design/fixtures/runs/b-vs-c-baseline/scorecard.json +138 -0
  86. package/docs/design/fixtures/runs/b-vs-c-baseline/slipstream/arm-b/run-1.html +373 -0
  87. package/docs/design/fixtures/runs/b-vs-c-baseline/slipstream/arm-b/run-2.html +398 -0
  88. package/docs/design/fixtures/runs/b-vs-c-baseline/slipstream/arm-b/run-3.html +595 -0
  89. package/docs/design/fixtures/runs/b-vs-c-baseline/tender/arm-b/run-1.html +531 -0
  90. package/docs/design/fixtures/runs/b-vs-c-baseline/tender/arm-b/run-2.html +565 -0
  91. package/docs/design/fixtures/runs/b-vs-c-baseline/tender/arm-b/run-3.html +674 -0
  92. package/docs/design/fixtures/runs/b-vs-c-baseline/voltage/arm-b/run-1.html +388 -0
  93. package/docs/design/fixtures/runs/b-vs-c-baseline/voltage/arm-b/run-2.html +463 -0
  94. package/docs/design/fixtures/runs/b-vs-c-baseline/voltage/arm-b/run-3.html +568 -0
  95. package/docs/design/fixtures/runs/full-abc/cadence/arm-a/run-1.html +562 -0
  96. package/docs/design/fixtures/runs/full-abc/cadence/arm-a/run-2.html +618 -0
  97. package/docs/design/fixtures/runs/full-abc/cadence/arm-a/run-3.html +618 -0
  98. package/docs/design/fixtures/runs/full-abc/cadence/arm-b/run-1.html +364 -0
  99. package/docs/design/fixtures/runs/full-abc/cadence/arm-b/run-2.html +420 -0
  100. package/docs/design/fixtures/runs/full-abc/cadence/arm-b/run-3.html +506 -0
  101. package/docs/design/fixtures/runs/full-abc/plume/arm-a/run-1.html +527 -0
  102. package/docs/design/fixtures/runs/full-abc/plume/arm-a/run-2.html +445 -0
  103. package/docs/design/fixtures/runs/full-abc/plume/arm-a/run-3.html +483 -0
  104. package/docs/design/fixtures/runs/full-abc/plume/arm-b/run-1.html +611 -0
  105. package/docs/design/fixtures/runs/full-abc/plume/arm-b/run-2.html +594 -0
  106. package/docs/design/fixtures/runs/full-abc/plume/arm-b/run-3.html +817 -0
  107. package/docs/design/fixtures/runs/full-abc/runs.json +190 -0
  108. package/docs/design/fixtures/runs/full-abc/scorecard.json +144 -0
  109. package/docs/design/fixtures/runs/full-abc/slipstream/arm-a/run-1.html +496 -0
  110. package/docs/design/fixtures/runs/full-abc/slipstream/arm-a/run-2.html +447 -0
  111. package/docs/design/fixtures/runs/full-abc/slipstream/arm-a/run-3.html +564 -0
  112. package/docs/design/fixtures/runs/full-abc/slipstream/arm-b/run-1.html +373 -0
  113. package/docs/design/fixtures/runs/full-abc/slipstream/arm-b/run-2.html +398 -0
  114. package/docs/design/fixtures/runs/full-abc/slipstream/arm-b/run-3.html +595 -0
  115. package/docs/design/fixtures/runs/full-abc/tender/arm-a/run-1.html +622 -0
  116. package/docs/design/fixtures/runs/full-abc/tender/arm-a/run-2.html +475 -0
  117. package/docs/design/fixtures/runs/full-abc/tender/arm-a/run-3.html +660 -0
  118. package/docs/design/fixtures/runs/full-abc/tender/arm-b/run-1.html +531 -0
  119. package/docs/design/fixtures/runs/full-abc/tender/arm-b/run-2.html +565 -0
  120. package/docs/design/fixtures/runs/full-abc/tender/arm-b/run-3.html +674 -0
  121. package/docs/design/fixtures/runs/full-abc/voltage/arm-a/run-1.html +525 -0
  122. package/docs/design/fixtures/runs/full-abc/voltage/arm-a/run-2.html +446 -0
  123. package/docs/design/fixtures/runs/full-abc/voltage/arm-a/run-3.html +463 -0
  124. package/docs/design/fixtures/runs/full-abc/voltage/arm-b/run-1.html +388 -0
  125. package/docs/design/fixtures/runs/full-abc/voltage/arm-b/run-2.html +463 -0
  126. package/docs/design/fixtures/runs/full-abc/voltage/arm-b/run-3.html +568 -0
  127. package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-a/run-1.html +1068 -0
  128. package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-a/run-2.html +1423 -0
  129. package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-a/run-3.html +1245 -0
  130. package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-b/run-1.html +305 -0
  131. package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-b/run-2.html +327 -0
  132. package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-b/run-3.html +428 -0
  133. package/docs/design/fixtures/runs/full-abc-opus/plume/arm-a/run-1.html +1270 -0
  134. package/docs/design/fixtures/runs/full-abc-opus/plume/arm-a/run-2.html +1172 -0
  135. package/docs/design/fixtures/runs/full-abc-opus/plume/arm-a/run-3.html +1532 -0
  136. package/docs/design/fixtures/runs/full-abc-opus/plume/arm-b/run-1.html +315 -0
  137. package/docs/design/fixtures/runs/full-abc-opus/plume/arm-b/run-2.html +342 -0
  138. package/docs/design/fixtures/runs/full-abc-opus/plume/arm-b/run-3.html +353 -0
  139. package/docs/design/fixtures/runs/full-abc-opus/runs.json +190 -0
  140. package/docs/design/fixtures/runs/full-abc-opus/scorecard.json +144 -0
  141. package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-a/run-1.html +345 -0
  142. package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-a/run-2.html +396 -0
  143. package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-a/run-3.html +502 -0
  144. package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-b/run-1.html +408 -0
  145. package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-b/run-2.html +446 -0
  146. package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-b/run-3.html +496 -0
  147. package/docs/design/fixtures/runs/full-abc-opus/tender/arm-a/run-1.html +813 -0
  148. package/docs/design/fixtures/runs/full-abc-opus/tender/arm-a/run-2.html +711 -0
  149. package/docs/design/fixtures/runs/full-abc-opus/tender/arm-a/run-3.html +721 -0
  150. package/docs/design/fixtures/runs/full-abc-opus/tender/arm-b/run-1.html +280 -0
  151. package/docs/design/fixtures/runs/full-abc-opus/tender/arm-b/run-2.html +291 -0
  152. package/docs/design/fixtures/runs/full-abc-opus/tender/arm-b/run-3.html +366 -0
  153. package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-a/run-1.html +1010 -0
  154. package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-a/run-2.html +836 -0
  155. package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-a/run-3.html +930 -0
  156. package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-b/run-1.html +407 -0
  157. package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-b/run-2.html +396 -0
  158. package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-b/run-3.html +529 -0
  159. package/docs/design/foundations/brutalist.css +294 -0
  160. package/docs/design/foundations/editorial.css +300 -0
  161. package/docs/design/foundations/minimal-luxury.css +295 -0
  162. package/docs/design/foundations/technical.css +293 -0
  163. package/docs/design/foundations/warm-photo.css +299 -0
  164. package/docs/design/reference-corpus.md +1726 -0
  165. package/docs/design/render-critique-loop.md +57 -0
  166. package/docs/site/getting-started.md +21 -0
  167. package/docs/spec-graph-schema.md +397 -0
  168. package/package.json +3 -3
  169. package/scripts/bench-scorecard.mjs +239 -0
  170. package/scripts/build-spec-graph.mjs +509 -0
  171. package/scripts/classify-lane.sh +138 -0
  172. package/scripts/design-system-lint.mjs +993 -0
  173. package/scripts/graph-query.sh +486 -0
  174. package/scripts/transition-label.sh +169 -0
  175. package/scripts/validate-pr-target.sh +30 -0
  176. package/scripts/validate-spec-graph.sh +423 -0
  177. package/templates/devdocs/README.md +72 -0
  178. package/templates/devdocs/agent/using-forgedock.md +3 -0
  179. package/templates/devdocs/agent/using-github.md +3 -0
  180. package/templates/devdocs/index.yaml +162 -0
  181. package/templates/devdocs/project/architecture.md +3 -0
  182. package/templates/devdocs/project/conventions.md +3 -0
  183. package/templates/devdocs/project/custom-instructions.md +3 -0
  184. package/templates/devdocs/project/glossary.md +3 -0
  185. package/templates/devdocs/project/stack.md +3 -0
  186. package/templates/devdocs/templates/commit-convention.md +3 -0
  187. package/templates/devdocs/templates/issue.md +3 -0
  188. package/templates/devdocs/templates/pull-request.md +3 -0
  189. package/templates/devdocs/templates/review-finding.md +3 -0
  190. package/templates/workflows/forgedock-review.yml +96 -0
@@ -0,0 +1,373 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Slipstream — Deploy at the speed of git push</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script>
9
+ tailwind.config = {
10
+ theme: {
11
+ extend: {
12
+ fontFamily: {
13
+ mono: ['JetBrains Mono', 'Fira Code', 'monospace'],
14
+ sans: ['Inter', 'system-ui', 'sans-serif'],
15
+ },
16
+ colors: {
17
+ slip: {
18
+ 50: '#f0f9ff',
19
+ 100: '#e0f2fe',
20
+ 400: '#38bdf8',
21
+ 500: '#0ea5e9',
22
+ 600: '#0284c7',
23
+ 900: '#0c4a6e',
24
+ }
25
+ }
26
+ }
27
+ }
28
+ }
29
+ </script>
30
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
31
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet" />
32
+ <style>
33
+ body { background: #080c10; color: #e2e8f0; }
34
+ .grid-bg {
35
+ background-image:
36
+ linear-gradient(rgba(14,165,233,0.05) 1px, transparent 1px),
37
+ linear-gradient(90deg, rgba(14,165,233,0.05) 1px, transparent 1px);
38
+ background-size: 40px 40px;
39
+ }
40
+ .glow-blue {
41
+ box-shadow: 0 0 80px rgba(14,165,233,0.15), 0 0 160px rgba(14,165,233,0.05);
42
+ }
43
+ .terminal-glow {
44
+ box-shadow: 0 0 0 1px rgba(14,165,233,0.2), 0 20px 60px rgba(0,0,0,0.6);
45
+ }
46
+ .status-dot::before {
47
+ content: '';
48
+ display: inline-block;
49
+ width: 7px;
50
+ height: 7px;
51
+ border-radius: 50%;
52
+ background: #22c55e;
53
+ margin-right: 8px;
54
+ box-shadow: 0 0 8px #22c55e;
55
+ animation: pulse 2s infinite;
56
+ }
57
+ @keyframes pulse {
58
+ 0%, 100% { opacity: 1; }
59
+ 50% { opacity: 0.4; }
60
+ }
61
+ .shimmer {
62
+ background: linear-gradient(90deg, transparent, rgba(14,165,233,0.1), transparent);
63
+ background-size: 200% 100%;
64
+ animation: shimmer 2.5s infinite;
65
+ }
66
+ @keyframes shimmer {
67
+ 0% { background-position: -200% 0; }
68
+ 100% { background-position: 200% 0; }
69
+ }
70
+ .code-token-keyword { color: #7dd3fc; }
71
+ .code-token-string { color: #86efac; }
72
+ .code-token-comment { color: #475569; }
73
+ .code-token-fn { color: #c084fc; }
74
+ .code-token-num { color: #fda4af; }
75
+ </style>
76
+ </head>
77
+ <body class="antialiased font-sans">
78
+
79
+ <!-- NAV -->
80
+ <nav class="fixed top-0 left-0 right-0 z-50 border-b border-white/5 backdrop-blur-md bg-[#080c10]/80">
81
+ <div class="max-w-6xl mx-auto px-6 h-14 flex items-center justify-between">
82
+ <div class="flex items-center gap-8">
83
+ <span class="text-white font-bold text-lg tracking-tight">Slipstream</span>
84
+ <div class="hidden md:flex items-center gap-6 text-sm text-slate-400">
85
+ <a href="#" class="hover:text-white transition-colors">Docs</a>
86
+ <a href="#" class="hover:text-white transition-colors">Pricing</a>
87
+ <a href="#" class="hover:text-white transition-colors">Blog</a>
88
+ <a href="#" class="hover:text-white transition-colors">Changelog</a>
89
+ </div>
90
+ </div>
91
+ <div class="flex items-center gap-3">
92
+ <a href="#" class="text-sm text-slate-400 hover:text-white transition-colors px-3 py-1.5">Log in</a>
93
+ <a href="#" class="text-sm bg-sky-500 hover:bg-sky-400 text-white font-medium px-4 py-1.5 rounded-md transition-colors">Deploy now</a>
94
+ </div>
95
+ </div>
96
+ </nav>
97
+
98
+ <!-- HERO -->
99
+ <section class="grid-bg min-h-screen flex flex-col items-center justify-center pt-14 px-6 relative overflow-hidden">
100
+ <!-- Radial glow -->
101
+ <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
102
+ <div class="w-[600px] h-[600px] rounded-full bg-sky-500/5 blur-3xl"></div>
103
+ </div>
104
+
105
+ <div class="relative max-w-4xl mx-auto text-center">
106
+ <div class="inline-flex items-center gap-2 text-xs font-mono text-sky-400 bg-sky-500/10 border border-sky-500/20 rounded-full px-3 py-1 mb-8">
107
+ <span class="status-dot"></span>
108
+ All systems operational — 99.99% uptime
109
+ </div>
110
+
111
+ <h1 class="text-5xl md:text-7xl font-black tracking-tight text-white mb-6 leading-none">
112
+ Push code.<br />
113
+ <span class="text-transparent bg-clip-text bg-gradient-to-r from-sky-400 to-blue-500">Ship instantly.</span><br />
114
+ Done.
115
+ </h1>
116
+
117
+ <p class="text-lg md:text-xl text-slate-400 max-w-2xl mx-auto mb-10 leading-relaxed">
118
+ Connect your repo. Every push deploys to a global edge network in seconds.
119
+ No servers. No ops. No waiting around.
120
+ </p>
121
+
122
+ <div class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-16">
123
+ <a href="#" class="w-full sm:w-auto bg-sky-500 hover:bg-sky-400 text-white font-semibold px-8 py-3 rounded-md text-base transition-all hover:shadow-lg hover:shadow-sky-500/25">
124
+ Start for free
125
+ </a>
126
+ <a href="#" class="w-full sm:w-auto border border-white/10 hover:border-white/20 text-slate-300 hover:text-white font-medium px-8 py-3 rounded-md text-base transition-all">
127
+ Read the docs →
128
+ </a>
129
+ </div>
130
+
131
+ <!-- Terminal -->
132
+ <div class="terminal-glow rounded-xl bg-[#0d1117] border border-white/8 text-left overflow-hidden max-w-2xl mx-auto">
133
+ <div class="flex items-center gap-2 px-4 py-3 border-b border-white/5 bg-white/2">
134
+ <div class="w-3 h-3 rounded-full bg-red-500/60"></div>
135
+ <div class="w-3 h-3 rounded-full bg-yellow-500/60"></div>
136
+ <div class="w-3 h-3 rounded-full bg-green-500/60"></div>
137
+ <span class="ml-3 text-xs text-slate-500 font-mono">bash</span>
138
+ </div>
139
+ <div class="p-5 font-mono text-sm space-y-1">
140
+ <div class="text-slate-500">$ git push origin main</div>
141
+ <div class="text-slate-400 mt-2">Enumerating objects: 5, done.</div>
142
+ <div class="text-slate-400">Counting objects: 100% (5/5), done.</div>
143
+ <div class="text-slate-400">Writing objects: 100% (3/3), 847 bytes, done.</div>
144
+ <div class="mt-3 text-sky-400">remote: Slipstream — Build triggered</div>
145
+ <div class="text-sky-400">remote: ✓ Installing dependencies <span class="text-slate-500">3.2s</span></div>
146
+ <div class="text-sky-400">remote: ✓ Building application <span class="text-slate-500">12.1s</span></div>
147
+ <div class="text-sky-400">remote: ✓ Deploying to edge network <span class="text-slate-500">1.8s</span></div>
148
+ <div class="mt-3 text-green-400 font-bold">remote: Production: https://myapp.slipstream.app ✓</div>
149
+ <div class="text-slate-500">remote: Deploy complete in 17.1s</div>
150
+ <div class="mt-2 text-slate-500 shimmer">█</div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </section>
155
+
156
+ <!-- LOGOS -->
157
+ <section class="border-y border-white/5 py-12 px-6">
158
+ <div class="max-w-5xl mx-auto">
159
+ <p class="text-center text-xs font-mono text-slate-600 uppercase tracking-widest mb-8">Trusted by teams shipping on</p>
160
+ <div class="flex flex-wrap items-center justify-center gap-x-12 gap-y-4">
161
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">Next.js</span>
162
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">SvelteKit</span>
163
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">Astro</span>
164
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">Remix</span>
165
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">Nuxt</span>
166
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">Vite</span>
167
+ <span class="text-slate-600 font-semibold text-lg tracking-tight">SolidStart</span>
168
+ </div>
169
+ </div>
170
+ </section>
171
+
172
+ <!-- FEATURES -->
173
+ <section class="py-28 px-6" id="features">
174
+ <div class="max-w-6xl mx-auto">
175
+ <div class="mb-16">
176
+ <p class="text-xs font-mono text-sky-400 uppercase tracking-widest mb-4">How it works</p>
177
+ <h2 class="text-4xl md:text-5xl font-black text-white tracking-tight">Your repo is the control plane.</h2>
178
+ <p class="mt-4 text-lg text-slate-400 max-w-xl">Slipstream watches your branches. You write code, we handle everything else.</p>
179
+ </div>
180
+
181
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-px bg-white/5 rounded-xl overflow-hidden">
182
+ <!-- F1 -->
183
+ <div class="bg-[#080c10] p-8 hover:bg-[#0d1117] transition-colors group">
184
+ <div class="w-10 h-10 rounded-lg bg-sky-500/10 border border-sky-500/20 flex items-center justify-center mb-6 group-hover:bg-sky-500/20 transition-colors">
185
+ <svg class="w-5 h-5 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
186
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3 7.5L7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5" />
187
+ </svg>
188
+ </div>
189
+ <h3 class="text-white font-bold text-lg mb-3">Git-connected deploys</h3>
190
+ <p class="text-slate-400 text-sm leading-relaxed">Push to any branch, get a live HTTPS URL. Merge to main, production updates. No dashboards to navigate, no manual triggers.</p>
191
+ <div class="mt-5 font-mono text-xs bg-white/3 rounded-lg p-3 border border-white/5">
192
+ <div class="text-slate-500"># That's it.</div>
193
+ <div class="mt-1"><span class="text-purple-400">git</span> <span class="text-sky-300">push</span> <span class="text-slate-300">origin main</span></div>
194
+ </div>
195
+ </div>
196
+ <!-- F2 -->
197
+ <div class="bg-[#080c10] p-8 hover:bg-[#0d1117] transition-colors group">
198
+ <div class="w-10 h-10 rounded-lg bg-sky-500/10 border border-sky-500/20 flex items-center justify-center mb-6 group-hover:bg-sky-500/20 transition-colors">
199
+ <svg class="w-5 h-5 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
200
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
201
+ </svg>
202
+ </div>
203
+ <h3 class="text-white font-bold text-lg mb-3">Preview environments</h3>
204
+ <p class="text-slate-400 text-sm leading-relaxed">Every pull request gets its own isolated deployment. Share a link with your team before anything touches production. Automatic teardown on merge.</p>
205
+ <div class="mt-5 font-mono text-xs bg-white/3 rounded-lg p-3 border border-white/5">
206
+ <div class="text-green-400">✓ Preview ready</div>
207
+ <div class="text-sky-400 mt-1">https://pr-142.myapp.slipstream.app</div>
208
+ </div>
209
+ </div>
210
+ <!-- F3 -->
211
+ <div class="bg-[#080c10] p-8 hover:bg-[#0d1117] transition-colors group">
212
+ <div class="w-10 h-10 rounded-lg bg-sky-500/10 border border-sky-500/20 flex items-center justify-center mb-6 group-hover:bg-sky-500/20 transition-colors">
213
+ <svg class="w-5 h-5 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
214
+ <path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253" />
215
+ </svg>
216
+ </div>
217
+ <h3 class="text-white font-bold text-lg mb-3">Global edge network</h3>
218
+ <p class="text-slate-400 text-sm leading-relaxed">Assets cached at 300+ PoPs worldwide. Edge functions run at the node closest to your user. Sub-50ms TTFB from anywhere on earth.</p>
219
+ <div class="mt-5 font-mono text-xs bg-white/3 rounded-lg p-3 border border-white/5">
220
+ <div class="text-slate-500">TTFB from Singapore</div>
221
+ <div class="text-green-400 mt-1 text-base font-bold">23ms</div>
222
+ </div>
223
+ </div>
224
+ </div>
225
+
226
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-px bg-white/5 rounded-xl overflow-hidden mt-px">
227
+ <!-- F4 -->
228
+ <div class="bg-[#080c10] p-8 hover:bg-[#0d1117] transition-colors">
229
+ <div class="w-10 h-10 rounded-lg bg-sky-500/10 border border-sky-500/20 flex items-center justify-center mb-6">
230
+ <svg class="w-5 h-5 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
231
+ <path stroke-linecap="round" stroke-linejoin="round" d="M5.25 14.25h13.5m-13.5 0a3 3 0 01-3-3m3 3a3 3 0 100 6h13.5a3 3 0 100-6m-16.5-3a3 3 0 013-3h13.5a3 3 0 013 3m-19.5 0a4.5 4.5 0 01.9-2.7L5.737 5.1a3.375 3.375 0 012.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 01.9 2.7m0 0a3 3 0 01-3 3m0 3h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008z" />
232
+ </svg>
233
+ </div>
234
+ <h3 class="text-white font-bold text-lg mb-3">Serverless & edge functions</h3>
235
+ <p class="text-slate-400 text-sm leading-relaxed mb-5">Write backend logic alongside your frontend. Deploy as serverless functions that auto-scale to zero. Run at the edge for latency-critical paths.</p>
236
+ <div class="font-mono text-xs bg-white/3 rounded-lg p-4 border border-white/5">
237
+ <div class="text-slate-500 mb-2">// app/api/user/route.ts</div>
238
+ <div><span class="code-token-keyword">export</span> <span class="code-token-keyword">const</span> <span class="text-white">runtime</span> <span class="text-slate-400">=</span> <span class="code-token-string">'edge'</span></div>
239
+ <div class="mt-1"><span class="code-token-keyword">export async function</span> <span class="code-token-fn">GET</span><span class="text-slate-300">(req: Request) {"{"} </span></div>
240
+ <div class="ml-4"><span class="code-token-keyword">return</span> <span class="code-token-fn">Response</span><span class="text-slate-300">.</span><span class="code-token-fn">json</span><span class="text-slate-300">({"{"}user: <span class="code-token-string">'...'</span>{"}"}) </span></div>
241
+ <div><span class="text-slate-300">{"}"}</span></div>
242
+ </div>
243
+ </div>
244
+ <!-- F5 -->
245
+ <div class="bg-[#080c10] p-8 hover:bg-[#0d1117] transition-colors">
246
+ <div class="w-10 h-10 rounded-lg bg-sky-500/10 border border-sky-500/20 flex items-center justify-center mb-6">
247
+ <svg class="w-5 h-5 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
248
+ <path stroke-linecap="round" stroke-linejoin="round" d="M18 18.72a9.094 9.094 0 003.741-.479 3 3 0 00-4.682-2.72m.94 3.198l.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0112 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 016 18.719m12 0a5.971 5.971 0 00-.941-3.197m0 0A5.995 5.995 0 0012 12.75a5.995 5.995 0 00-5.058 2.772m0 0a3 3 0 00-4.681 2.72 8.986 8.986 0 003.74.477m.94-3.197a5.971 5.971 0 00-.94 3.197M15 6.75a3 3 0 11-6 0 3 3 0 016 0zm6 3a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0zm-13.5 0a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0z" />
249
+ </svg>
250
+ </div>
251
+ <h3 class="text-white font-bold text-lg mb-3">Built for teams</h3>
252
+ <p class="text-slate-400 text-sm leading-relaxed mb-5">Role-based access, shared environment variables, audit logs, and PR comments with live preview links. Everyone on the same page, no one stepping on each other.</p>
253
+ <div class="space-y-3">
254
+ <div class="flex items-center gap-3 p-3 bg-white/3 rounded-lg border border-white/5">
255
+ <div class="w-7 h-7 rounded-full bg-purple-500/30 border border-purple-500/20 flex items-center justify-center text-xs font-bold text-purple-300">A</div>
256
+ <div class="flex-1">
257
+ <div class="text-xs text-slate-300 font-medium">alex@corp.io</div>
258
+ <div class="text-xs text-slate-500">Owner</div>
259
+ </div>
260
+ <span class="text-xs text-sky-400 font-mono">prod access</span>
261
+ </div>
262
+ <div class="flex items-center gap-3 p-3 bg-white/3 rounded-lg border border-white/5">
263
+ <div class="w-7 h-7 rounded-full bg-green-500/30 border border-green-500/20 flex items-center justify-center text-xs font-bold text-green-300">S</div>
264
+ <div class="flex-1">
265
+ <div class="text-xs text-slate-300 font-medium">sam@corp.io</div>
266
+ <div class="text-xs text-slate-500">Developer</div>
267
+ </div>
268
+ <span class="text-xs text-slate-400 font-mono">preview only</span>
269
+ </div>
270
+ </div>
271
+ </div>
272
+ </div>
273
+ </div>
274
+ </section>
275
+
276
+ <!-- STATS -->
277
+ <section class="py-20 px-6 border-y border-white/5 bg-white/2">
278
+ <div class="max-w-4xl mx-auto grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
279
+ <div>
280
+ <div class="text-4xl font-black text-white mb-1">300+</div>
281
+ <div class="text-sm text-slate-500">Edge locations</div>
282
+ </div>
283
+ <div>
284
+ <div class="text-4xl font-black text-white mb-1">&lt;20s</div>
285
+ <div class="text-sm text-slate-500">Avg deploy time</div>
286
+ </div>
287
+ <div>
288
+ <div class="text-4xl font-black text-white mb-1">99.99%</div>
289
+ <div class="text-sm text-slate-500">Uptime SLA</div>
290
+ </div>
291
+ <div>
292
+ <div class="text-4xl font-black text-white mb-1">0</div>
293
+ <div class="text-sm text-slate-500">Servers to manage</div>
294
+ </div>
295
+ </div>
296
+ </section>
297
+
298
+ <!-- PRICING TEASE -->
299
+ <section class="py-28 px-6">
300
+ <div class="max-w-3xl mx-auto">
301
+ <div class="mb-12 text-center">
302
+ <h2 class="text-4xl font-black text-white mb-4">Start free. Scale without friction.</h2>
303
+ <p class="text-slate-400">No credit card required. Generous free tier covers most personal projects and side work.</p>
304
+ </div>
305
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
306
+ <div class="rounded-xl border border-white/8 bg-[#0d1117] p-8">
307
+ <div class="text-xs font-mono text-slate-500 uppercase tracking-widest mb-3">Hobby</div>
308
+ <div class="text-3xl font-black text-white mb-1">Free</div>
309
+ <div class="text-sm text-slate-500 mb-6">Forever</div>
310
+ <ul class="space-y-3 text-sm text-slate-400">
311
+ <li class="flex items-center gap-2"><span class="text-green-400">✓</span> Unlimited deployments</li>
312
+ <li class="flex items-center gap-2"><span class="text-green-400">✓</span> 100 GB bandwidth/month</li>
313
+ <li class="flex items-center gap-2"><span class="text-green-400">✓</span> Preview deployments</li>
314
+ <li class="flex items-center gap-2"><span class="text-green-400">✓</span> Edge functions</li>
315
+ <li class="flex items-center gap-2"><span class="text-green-400">✓</span> 3 projects</li>
316
+ </ul>
317
+ <a href="#" class="mt-8 block text-center border border-white/10 hover:border-white/20 text-white font-medium py-2.5 rounded-lg transition-colors">Get started</a>
318
+ </div>
319
+ <div class="rounded-xl border border-sky-500/30 bg-sky-500/5 p-8 relative overflow-hidden">
320
+ <div class="absolute top-4 right-4 text-xs bg-sky-500 text-white font-mono px-2 py-0.5 rounded">Popular</div>
321
+ <div class="text-xs font-mono text-sky-400 uppercase tracking-widest mb-3">Pro</div>
322
+ <div class="text-3xl font-black text-white mb-1">$20<span class="text-lg font-normal text-slate-400">/mo</span></div>
323
+ <div class="text-sm text-slate-500 mb-6">Per member</div>
324
+ <ul class="space-y-3 text-sm text-slate-400">
325
+ <li class="flex items-center gap-2"><span class="text-sky-400">✓</span> Everything in Hobby</li>
326
+ <li class="flex items-center gap-2"><span class="text-sky-400">✓</span> 1 TB bandwidth/month</li>
327
+ <li class="flex items-center gap-2"><span class="text-sky-400">✓</span> Unlimited projects</li>
328
+ <li class="flex items-center gap-2"><span class="text-sky-400">✓</span> Team collaboration</li>
329
+ <li class="flex items-center gap-2"><span class="text-sky-400">✓</span> Priority support</li>
330
+ </ul>
331
+ <a href="#" class="mt-8 block text-center bg-sky-500 hover:bg-sky-400 text-white font-semibold py-2.5 rounded-lg transition-colors">Deploy now</a>
332
+ </div>
333
+ </div>
334
+ </div>
335
+ </section>
336
+
337
+ <!-- FINAL CTA -->
338
+ <section class="py-28 px-6 border-t border-white/5 relative overflow-hidden">
339
+ <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
340
+ <div class="w-[800px] h-[300px] rounded-full bg-sky-500/5 blur-3xl"></div>
341
+ </div>
342
+ <div class="relative max-w-2xl mx-auto text-center">
343
+ <h2 class="text-5xl font-black text-white mb-6 tracking-tight">Your next deploy<br />is one push away.</h2>
344
+ <p class="text-slate-400 mb-10 text-lg">Stop thinking about infrastructure. Start shipping.</p>
345
+ <div class="flex flex-col sm:flex-row items-center justify-center gap-3">
346
+ <a href="#" class="w-full sm:w-auto bg-sky-500 hover:bg-sky-400 text-white font-semibold px-10 py-4 rounded-md text-base transition-all hover:shadow-lg hover:shadow-sky-500/25">
347
+ Start for free
348
+ </a>
349
+ <a href="#" class="w-full sm:w-auto text-slate-400 hover:text-white font-medium px-8 py-4 text-base transition-colors">
350
+ View documentation →
351
+ </a>
352
+ </div>
353
+ </div>
354
+ </section>
355
+
356
+ <!-- FOOTER -->
357
+ <footer class="border-t border-white/5 py-12 px-6">
358
+ <div class="max-w-6xl mx-auto flex flex-col md:flex-row items-center justify-between gap-6">
359
+ <div class="flex items-center gap-6">
360
+ <span class="text-white font-bold">Slipstream</span>
361
+ <span class="text-slate-600 text-sm">© 2025</span>
362
+ </div>
363
+ <div class="flex items-center gap-6 text-sm text-slate-500">
364
+ <a href="#" class="hover:text-slate-300 transition-colors">Privacy</a>
365
+ <a href="#" class="hover:text-slate-300 transition-colors">Terms</a>
366
+ <a href="#" class="hover:text-slate-300 transition-colors">Status</a>
367
+ <a href="#" class="hover:text-slate-300 transition-colors">GitHub</a>
368
+ </div>
369
+ </div>
370
+ </footer>
371
+
372
+ </body>
373
+ </html>