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,595 @@
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 — Ship web apps without the ops tax</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@300;400;500&display=swap" rel="stylesheet" />
10
+ <style>
11
+ body {
12
+ font-family: 'IBM Plex Sans', system-ui, sans-serif;
13
+ background: #fff;
14
+ color: #0f0f0f;
15
+ }
16
+ h1, h2, h3, .font-display { font-family: 'Syne', sans-serif; }
17
+ .font-mono { font-family: 'IBM Plex Mono', monospace; }
18
+
19
+ .hero-bg {
20
+ background: #0f0f0f;
21
+ }
22
+ .orange { color: #ff4d00; }
23
+ .bg-orange { background: #ff4d00; }
24
+ .border-orange { border-color: #ff4d00; }
25
+
26
+ .ticker-wrap {
27
+ overflow: hidden;
28
+ white-space: nowrap;
29
+ }
30
+ .ticker-inner {
31
+ display: inline-block;
32
+ animation: ticker 18s linear infinite;
33
+ }
34
+ @keyframes ticker {
35
+ 0% { transform: translateX(0); }
36
+ 100% { transform: translateX(-50%); }
37
+ }
38
+
39
+ .number-grid {
40
+ font-family: 'Syne', sans-serif;
41
+ font-weight: 800;
42
+ }
43
+
44
+ .feature-block {
45
+ border-left: 2px solid #e5e5e5;
46
+ transition: border-color 0.2s;
47
+ }
48
+ .feature-block:hover { border-color: #ff4d00; }
49
+
50
+ .code-block {
51
+ background: #0f0f0f;
52
+ border-radius: 0;
53
+ }
54
+
55
+ .big-cta {
56
+ background: #ff4d00;
57
+ transition: background 0.15s;
58
+ }
59
+ .big-cta:hover { background: #e03d00; }
60
+
61
+ .line-separator { border-color: #e5e5e5; }
62
+
63
+ /* Animated deploy indicator */
64
+ @keyframes deploy-progress {
65
+ 0% { width: 0%; }
66
+ 30% { width: 45%; }
67
+ 60% { width: 78%; }
68
+ 85% { width: 92%; }
69
+ 100% { width: 100%; }
70
+ }
71
+ .deploy-bar {
72
+ animation: deploy-progress 3s ease-out forwards;
73
+ animation-delay: 0.5s;
74
+ width: 0%;
75
+ }
76
+
77
+ .edge-dot {
78
+ animation: edge-pulse 3s ease-in-out infinite;
79
+ }
80
+ @keyframes edge-pulse {
81
+ 0%, 100% { opacity: 0.4; r: 3; }
82
+ 50% { opacity: 1; r: 5; }
83
+ }
84
+ </style>
85
+ </head>
86
+ <body class="antialiased">
87
+
88
+ <!-- NAV -->
89
+ <header class="hero-bg sticky top-0 z-50">
90
+ <nav class="max-w-7xl mx-auto px-8 h-14 flex items-center justify-between border-b border-white/10">
91
+ <span class="font-display font-bold text-xl text-white tracking-tight">Slipstream</span>
92
+ <div class="hidden md:flex items-center gap-8 text-sm text-white/50">
93
+ <a href="#" class="hover:text-white transition-colors">Platform</a>
94
+ <a href="#" class="hover:text-white transition-colors">Pricing</a>
95
+ <a href="#" class="hover:text-white transition-colors">Docs</a>
96
+ <a href="#" class="hover:text-white transition-colors">Blog</a>
97
+ <a href="#" class="hover:text-white transition-colors">Enterprise</a>
98
+ </div>
99
+ <div class="flex items-center gap-3">
100
+ <a href="#" class="text-sm text-white/50 hover:text-white transition-colors">Log in</a>
101
+ <a href="#" class="text-sm bg-orange text-white font-semibold px-5 py-2 transition-colors hover:bg-[#e03d00]">Deploy now</a>
102
+ </div>
103
+ </nav>
104
+ </header>
105
+
106
+ <!-- HERO — full bleed dark -->
107
+ <section class="hero-bg text-white min-h-screen flex flex-col justify-between">
108
+ <!-- Top part -->
109
+ <div class="flex-1 flex flex-col justify-center max-w-7xl mx-auto px-8 pt-20 pb-16 w-full">
110
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-end">
111
+ <!-- Left: headline -->
112
+ <div>
113
+ <div class="font-mono text-xs text-white/30 mb-8 tracking-widest uppercase">
114
+ v3.0 — Global Edge Platform
115
+ </div>
116
+ <h1 class="font-display text-[80px] leading-none font-extrabold tracking-tight mb-8">
117
+ No servers.<br />
118
+ No ops.<br />
119
+ <span class="orange">Just ship.</span>
120
+ </h1>
121
+ <p class="text-white/50 text-lg font-light leading-relaxed max-w-md mb-10">
122
+ Connect a git repo. Push your code. Get a production URL in under 20 seconds — distributed across 300 edge locations worldwide.
123
+ </p>
124
+ <div class="flex items-center gap-4">
125
+ <a href="#" class="big-cta text-white font-semibold px-8 py-4 text-base">
126
+ Start for free
127
+ </a>
128
+ <a href="#" class="text-white/50 hover:text-white text-sm font-mono transition-colors">
129
+ $ npx slipstream init →
130
+ </a>
131
+ </div>
132
+ </div>
133
+
134
+ <!-- Right: Deploy animation -->
135
+ <div class="lg:border-l border-white/10 lg:pl-12">
136
+ <div class="font-mono text-xs text-white/30 mb-4 uppercase tracking-widest">Live deploy trace</div>
137
+ <div class="space-y-3">
138
+ <div>
139
+ <div class="flex items-center justify-between text-xs font-mono text-white/40 mb-1.5">
140
+ <span>Cloning repository</span>
141
+ <span class="text-green-400">✓ 0.3s</span>
142
+ </div>
143
+ <div class="h-0.5 bg-white/10 rounded-full overflow-hidden">
144
+ <div class="h-full bg-green-400 w-full"></div>
145
+ </div>
146
+ </div>
147
+ <div>
148
+ <div class="flex items-center justify-between text-xs font-mono text-white/40 mb-1.5">
149
+ <span>Installing dependencies</span>
150
+ <span class="text-green-400">✓ 4.1s</span>
151
+ </div>
152
+ <div class="h-0.5 bg-white/10 rounded-full overflow-hidden">
153
+ <div class="h-full bg-green-400 w-full"></div>
154
+ </div>
155
+ </div>
156
+ <div>
157
+ <div class="flex items-center justify-between text-xs font-mono text-white/40 mb-1.5">
158
+ <span>Building application</span>
159
+ <span class="text-green-400">✓ 11.8s</span>
160
+ </div>
161
+ <div class="h-0.5 bg-white/10 rounded-full overflow-hidden">
162
+ <div class="h-full bg-green-400 w-full"></div>
163
+ </div>
164
+ </div>
165
+ <div>
166
+ <div class="flex items-center justify-between text-xs font-mono text-white/40 mb-1.5">
167
+ <span>Deploying to edge</span>
168
+ <span class="text-white/30">deploying...</span>
169
+ </div>
170
+ <div class="h-0.5 bg-white/10 rounded-full overflow-hidden">
171
+ <div class="h-full bg-orange deploy-bar"></div>
172
+ </div>
173
+ </div>
174
+ <div class="pt-4 border-t border-white/10">
175
+ <div class="text-xs font-mono text-white/20 mb-2">Production URL</div>
176
+ <div class="text-sm font-mono text-orange">https://myapp.slipstream.app</div>
177
+ </div>
178
+ </div>
179
+
180
+ <!-- Edge globe SVG sketch -->
181
+ <div class="mt-8">
182
+ <div class="font-mono text-xs text-white/20 mb-3 uppercase tracking-widest">Edge distribution</div>
183
+ <svg viewBox="0 0 320 160" class="w-full opacity-60" fill="none" xmlns="http://www.w3.org/2000/svg">
184
+ <!-- World outline simplified -->
185
+ <ellipse cx="160" cy="80" rx="140" ry="70" stroke="#333" stroke-width="1"/>
186
+ <ellipse cx="160" cy="80" rx="90" ry="70" stroke="#222" stroke-width="0.5"/>
187
+ <ellipse cx="160" cy="80" rx="40" ry="70" stroke="#222" stroke-width="0.5"/>
188
+ <line x1="20" y1="80" x2="300" y2="80" stroke="#222" stroke-width="0.5"/>
189
+ <line x1="160" y1="10" x2="160" y2="150" stroke="#222" stroke-width="0.5"/>
190
+ <!-- Edge nodes -->
191
+ <circle cx="60" cy="60" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:0s"/>
192
+ <circle cx="240" cy="55" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:0.4s"/>
193
+ <circle cx="180" cy="100" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:0.8s"/>
194
+ <circle cx="100" cy="110" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:1.2s"/>
195
+ <circle cx="270" cy="95" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:1.6s"/>
196
+ <circle cx="145" cy="40" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:2s"/>
197
+ <circle cx="200" cy="130" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:0.6s"/>
198
+ <circle cx="75" cy="90" r="4" fill="#ff4d00" class="edge-dot" style="animation-delay:1s"/>
199
+ <!-- Connection lines -->
200
+ <line x1="60" y1="60" x2="145" y2="40" stroke="#ff4d00" stroke-width="0.5" opacity="0.3"/>
201
+ <line x1="240" y1="55" x2="145" y2="40" stroke="#ff4d00" stroke-width="0.5" opacity="0.3"/>
202
+ <line x1="60" y1="60" x2="100" y2="110" stroke="#ff4d00" stroke-width="0.5" opacity="0.3"/>
203
+ <line x1="240" y1="55" x2="270" y2="95" stroke="#ff4d00" stroke-width="0.5" opacity="0.3"/>
204
+ <line x1="180" y1="100" x2="270" y2="95" stroke="#ff4d00" stroke-width="0.5" opacity="0.3"/>
205
+ <line x1="180" y1="100" x2="200" y2="130" stroke="#ff4d00" stroke-width="0.5" opacity="0.3"/>
206
+ </svg>
207
+ <div class="font-mono text-xs text-white/25 text-center">300+ edge locations — serving from the nearest node</div>
208
+ </div>
209
+ </div>
210
+ </div>
211
+ </div>
212
+
213
+ <!-- Ticker bar -->
214
+ <div class="border-t border-white/10 py-3 ticker-wrap">
215
+ <div class="ticker-inner text-xs font-mono text-white/20 tracking-widest">
216
+ PUSH TO DEPLOY &nbsp;&nbsp;—&nbsp;&nbsp; PREVIEW ENVIRONMENTS &nbsp;&nbsp;—&nbsp;&nbsp; GLOBAL EDGE &nbsp;&nbsp;—&nbsp;&nbsp; ZERO OPS &nbsp;&nbsp;—&nbsp;&nbsp; SERVERLESS FUNCTIONS &nbsp;&nbsp;—&nbsp;&nbsp; 300+ EDGE LOCATIONS &nbsp;&nbsp;—&nbsp;&nbsp; 99.99% UPTIME &nbsp;&nbsp;—&nbsp;&nbsp; INSTANT ROLLBACK &nbsp;&nbsp;—&nbsp;&nbsp; PUSH TO DEPLOY &nbsp;&nbsp;—&nbsp;&nbsp; PREVIEW ENVIRONMENTS &nbsp;&nbsp;—&nbsp;&nbsp; GLOBAL EDGE &nbsp;&nbsp;—&nbsp;&nbsp; ZERO OPS &nbsp;&nbsp;—&nbsp;&nbsp; SERVERLESS FUNCTIONS &nbsp;&nbsp;—&nbsp;&nbsp; 300+ EDGE LOCATIONS &nbsp;&nbsp;—&nbsp;&nbsp; 99.99% UPTIME &nbsp;&nbsp;—&nbsp;&nbsp; INSTANT ROLLBACK &nbsp;&nbsp;—&nbsp;&nbsp;
217
+ </div>
218
+ </div>
219
+ </section>
220
+
221
+ <!-- NUMBERS -->
222
+ <section class="border-b border-[#e5e5e5] py-20 px-8">
223
+ <div class="max-w-7xl mx-auto">
224
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-0 divide-x divide-[#e5e5e5]">
225
+ <div class="px-8 first:pl-0">
226
+ <div class="number-grid text-6xl text-[#0f0f0f] mb-2">&lt;20s</div>
227
+ <div class="text-sm text-[#666] font-light">Average deploy time from push to live URL</div>
228
+ </div>
229
+ <div class="px-8">
230
+ <div class="number-grid text-6xl text-[#0f0f0f] mb-2">300+</div>
231
+ <div class="text-sm text-[#666] font-light">Edge PoPs across 6 continents</div>
232
+ </div>
233
+ <div class="px-8">
234
+ <div class="number-grid text-6xl text-[#0f0f0f] mb-2">0</div>
235
+ <div class="text-sm text-[#666] font-light">Servers to manage, ever</div>
236
+ </div>
237
+ <div class="px-8">
238
+ <div class="number-grid text-6xl text-[#0f0f0f] mb-2">99.99<span class="text-3xl">%</span></div>
239
+ <div class="text-sm text-[#666] font-light">Uptime SLA — we stand behind it</div>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </section>
244
+
245
+ <!-- FEATURES — editorial layout -->
246
+ <section class="py-24 px-8">
247
+ <div class="max-w-7xl mx-auto">
248
+ <div class="max-w-2xl mb-16">
249
+ <p class="font-mono text-xs text-[#999] uppercase tracking-widest mb-5">Platform</p>
250
+ <h2 class="font-display text-5xl font-extrabold text-[#0f0f0f] leading-tight">
251
+ The complete deployment surface for web applications.
252
+ </h2>
253
+ </div>
254
+
255
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-0 border border-[#e5e5e5]">
256
+ <!-- F1 -->
257
+ <div class="p-10 border-b border-r border-[#e5e5e5] group hover:bg-[#fafafa] transition-colors">
258
+ <div class="font-mono text-xs text-[#999] mb-6 uppercase tracking-widest">01 — Git-connected deploys</div>
259
+ <h3 class="font-display text-2xl font-bold mb-4">Push to branch. Get a URL.</h3>
260
+ <p class="text-[#555] text-sm leading-relaxed mb-6">
261
+ Connect your GitHub, GitLab, or Bitbucket repo once. From then on, every push to any branch triggers a build and produces a unique HTTPS URL. Merge to main, production updates. That's the entire workflow.
262
+ </p>
263
+ <div class="code-block p-5 font-mono text-sm">
264
+ <div class="text-[#666] text-xs mb-2 uppercase tracking-wider"># On push to any branch</div>
265
+ <div class="text-[#ccc] mt-2"><span class="text-orange">$</span> git push origin feat/new-checkout</div>
266
+ <div class="text-[#555] mt-2">Triggered: slipstream build #2847</div>
267
+ <div class="text-[#555]">Building... (Next.js 14 detected)</div>
268
+ <div class="text-[#4ade80] mt-2">✓ Live: feat-new-checkout.myapp.slipstream.app</div>
269
+ </div>
270
+ </div>
271
+
272
+ <!-- F2 -->
273
+ <div class="p-10 border-b border-[#e5e5e5] group hover:bg-[#fafafa] transition-colors">
274
+ <div class="font-mono text-xs text-[#999] mb-6 uppercase tracking-widest">02 — Preview environments</div>
275
+ <h3 class="font-display text-2xl font-bold mb-4">Every PR. Its own deployment.</h3>
276
+ <p class="text-[#555] text-sm leading-relaxed mb-6">
277
+ Open a pull request, get a full isolated deployment with its own domain. Share the link with design, product, or QA before a single line touches production. Preview environments are torn down on merge.
278
+ </p>
279
+ <div class="bg-[#f5f5f5] rounded-lg p-4 text-sm">
280
+ <div class="flex items-center justify-between mb-3">
281
+ <div class="font-semibold text-[#0f0f0f]">PR #284 — Redesign checkout flow</div>
282
+ <span class="text-xs bg-green-100 text-green-700 font-medium px-2 py-0.5 rounded-full">Ready</span>
283
+ </div>
284
+ <div class="font-mono text-xs text-[#666]">
285
+ <div>https://pr-284.checkout.slipstream.app</div>
286
+ </div>
287
+ <div class="mt-3 flex gap-3 text-xs text-[#888]">
288
+ <span>Auto-deployed 3m ago</span>
289
+ <span>·</span>
290
+ <span>Teardown on merge</span>
291
+ </div>
292
+ </div>
293
+ </div>
294
+
295
+ <!-- F3 -->
296
+ <div class="p-10 border-b border-r border-[#e5e5e5] group hover:bg-[#fafafa] transition-colors">
297
+ <div class="font-mono text-xs text-[#999] mb-6 uppercase tracking-widest">03 — Global edge network</div>
298
+ <h3 class="font-display text-2xl font-bold mb-4">Fast everywhere. Not just San Francisco.</h3>
299
+ <p class="text-[#555] text-sm leading-relaxed mb-6">
300
+ Static assets are cached at 300+ edge locations. Dynamic routes resolve at the node geographically nearest the request. Your app is fast in Jakarta and fast in Toronto — without configuring CDN rules.
301
+ </p>
302
+ <div class="grid grid-cols-3 gap-3 text-center font-mono">
303
+ <div class="bg-[#f5f5f5] rounded p-3">
304
+ <div class="text-lg font-bold text-[#0f0f0f]">19ms</div>
305
+ <div class="text-xs text-[#999]">New York</div>
306
+ </div>
307
+ <div class="bg-[#f5f5f5] rounded p-3">
308
+ <div class="text-lg font-bold text-[#0f0f0f]">31ms</div>
309
+ <div class="text-xs text-[#999]">Singapore</div>
310
+ </div>
311
+ <div class="bg-[#f5f5f5] rounded p-3">
312
+ <div class="text-lg font-bold text-[#0f0f0f]">24ms</div>
313
+ <div class="text-xs text-[#999]">Frankfurt</div>
314
+ </div>
315
+ </div>
316
+ </div>
317
+
318
+ <!-- F4 -->
319
+ <div class="p-10 border-b border-[#e5e5e5] group hover:bg-[#fafafa] transition-colors">
320
+ <div class="font-mono text-xs text-[#999] mb-6 uppercase tracking-widest">04 — Edge & serverless functions</div>
321
+ <h3 class="font-display text-2xl font-bold mb-4">Backend logic without the backend.</h3>
322
+ <p class="text-[#555] text-sm leading-relaxed mb-6">
323
+ Write server-side handlers co-located with your frontend. Deploy as serverless functions or edge workers. Zero cold start at the edge. Scales to zero when idle, to infinity under load.
324
+ </p>
325
+ <div class="code-block p-5 font-mono text-sm">
326
+ <div class="text-[#7c7c7c] text-xs">// functions/api/hello.ts</div>
327
+ <div class="mt-2 text-[#7dd3fc]">export const <span class="text-[#c084fc]">runtime</span> = <span class="text-[#86efac]">'edge'</span></div>
328
+ <div class="mt-1 text-[#7dd3fc]">export <span class="text-[#7dd3fc]">async function</span> <span class="text-[#fde68a]">GET</span><span class="text-[#ccc]">(req) {"{"}</span></div>
329
+ <div class="ml-4 text-[#ccc]"><span class="text-[#7dd3fc]">return</span> Response.json({"{"}</div>
330
+ <div class="ml-8 text-[#ccc]">message: <span class="text-[#86efac]">'hello from the edge'</span></div>
331
+ <div class="ml-4 text-[#ccc]">{"}"})</div>
332
+ <div class="text-[#ccc]">{"}"}</div>
333
+ </div>
334
+ </div>
335
+
336
+ <!-- F5 spanning full width -->
337
+ <div class="p-10 md:col-span-2 group hover:bg-[#fafafa] transition-colors">
338
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-10">
339
+ <div>
340
+ <div class="font-mono text-xs text-[#999] mb-6 uppercase tracking-widest">05 — Team collaboration</div>
341
+ <h3 class="font-display text-2xl font-bold mb-4">Built for teams that ship together.</h3>
342
+ <p class="text-[#555] text-sm leading-relaxed">
343
+ Role-based access control, shared environment variables scoped per environment, deploy history with audit logs, and automatic PR comments that drop preview links directly in GitHub. Everyone sees the same deployment status.
344
+ </p>
345
+ </div>
346
+ <div class="space-y-3">
347
+ <div class="flex items-center gap-4 p-4 bg-[#f5f5f5] rounded-lg">
348
+ <div class="w-9 h-9 rounded-full bg-orange flex items-center justify-center text-white font-bold text-sm">A</div>
349
+ <div class="flex-1">
350
+ <div class="text-sm font-semibold text-[#0f0f0f]">alice@acme.com</div>
351
+ <div class="text-xs text-[#888]">Owner — full access</div>
352
+ </div>
353
+ <span class="font-mono text-xs text-[#888]">prod + preview</span>
354
+ </div>
355
+ <div class="flex items-center gap-4 p-4 bg-[#f5f5f5] rounded-lg">
356
+ <div class="w-9 h-9 rounded-full bg-[#0f0f0f] flex items-center justify-center text-white font-bold text-sm">B</div>
357
+ <div class="flex-1">
358
+ <div class="text-sm font-semibold text-[#0f0f0f]">ben@acme.com</div>
359
+ <div class="text-xs text-[#888]">Developer</div>
360
+ </div>
361
+ <span class="font-mono text-xs text-[#888]">preview only</span>
362
+ </div>
363
+ <div class="flex items-center gap-4 p-4 bg-[#f5f5f5] rounded-lg">
364
+ <div class="w-9 h-9 rounded-full bg-[#6366f1] flex items-center justify-center text-white font-bold text-sm">C</div>
365
+ <div class="flex-1">
366
+ <div class="text-sm font-semibold text-[#0f0f0f]">clara@design.io</div>
367
+ <div class="text-xs text-[#888]">Viewer</div>
368
+ </div>
369
+ <span class="font-mono text-xs text-[#888]">read only</span>
370
+ </div>
371
+ </div>
372
+ </div>
373
+ </div>
374
+ </div>
375
+ </div>
376
+ </section>
377
+
378
+ <!-- FRAMEWORKS -->
379
+ <section class="py-20 px-8 bg-[#f5f5f5]">
380
+ <div class="max-w-7xl mx-auto">
381
+ <div class="text-center mb-12">
382
+ <h2 class="font-display text-4xl font-extrabold text-[#0f0f0f] mb-3">Framework-aware from day one.</h2>
383
+ <p class="text-[#666] text-lg font-light">We detect your stack and configure builds automatically. No guessing.</p>
384
+ </div>
385
+ <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-3">
386
+ {['Next.js', 'SvelteKit', 'Astro', 'Remix', 'Nuxt', 'SolidStart', 'Gatsby'].map((f, i) => `
387
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center">
388
+ <div class="font-semibold text-sm text-[#0f0f0f]">${f}</div>
389
+ </div>
390
+ `).join('')}
391
+ </div>
392
+ <!-- Actually render them properly -->
393
+ </div>
394
+ </section>
395
+ <!-- Override the template literal above with proper HTML -->
396
+ <style>
397
+ .framework-grid-override { display: none; }
398
+ </style>
399
+ <section class="py-0 px-8 bg-[#f5f5f5] -mt-20 pb-20">
400
+ <div class="max-w-7xl mx-auto">
401
+ <div class="grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-7 gap-3">
402
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
403
+ <div class="font-semibold text-sm text-[#0f0f0f]">Next.js</div>
404
+ <div class="text-xs text-[#999] mt-1">v14+</div>
405
+ </div>
406
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
407
+ <div class="font-semibold text-sm text-[#0f0f0f]">SvelteKit</div>
408
+ <div class="text-xs text-[#999] mt-1">v2+</div>
409
+ </div>
410
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
411
+ <div class="font-semibold text-sm text-[#0f0f0f]">Astro</div>
412
+ <div class="text-xs text-[#999] mt-1">v4+</div>
413
+ </div>
414
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
415
+ <div class="font-semibold text-sm text-[#0f0f0f]">Remix</div>
416
+ <div class="text-xs text-[#999] mt-1">v2+</div>
417
+ </div>
418
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
419
+ <div class="font-semibold text-sm text-[#0f0f0f]">Nuxt</div>
420
+ <div class="text-xs text-[#999] mt-1">v3+</div>
421
+ </div>
422
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
423
+ <div class="font-semibold text-sm text-[#0f0f0f]">SolidStart</div>
424
+ <div class="text-xs text-[#999] mt-1">v1+</div>
425
+ </div>
426
+ <div class="bg-white border border-[#e5e5e5] rounded-xl p-5 text-center hover:border-[#0f0f0f] transition-colors">
427
+ <div class="font-semibold text-sm text-[#0f0f0f]">Gatsby</div>
428
+ <div class="text-xs text-[#999] mt-1">v5+</div>
429
+ </div>
430
+ </div>
431
+ </div>
432
+ </section>
433
+
434
+ <!-- TESTIMONIALS -->
435
+ <section class="py-24 px-8 border-t border-[#e5e5e5]">
436
+ <div class="max-w-7xl mx-auto">
437
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
438
+ <div>
439
+ <p class="text-[#0f0f0f] text-lg leading-relaxed mb-6">"We cut our average time-to-production from 45 minutes to under a minute. That's not a marginal improvement — it changed how the team thinks about releasing."</p>
440
+ <div class="flex items-center gap-3">
441
+ <div class="w-9 h-9 rounded-full bg-[#6366f1] flex items-center justify-center text-white text-sm font-bold">JL</div>
442
+ <div>
443
+ <div class="text-sm font-semibold text-[#0f0f0f]">Jamie Lee</div>
444
+ <div class="text-xs text-[#888]">VP Engineering, Orbit</div>
445
+ </div>
446
+ </div>
447
+ </div>
448
+ <div>
449
+ <p class="text-[#0f0f0f] text-lg leading-relaxed mb-6">"Preview environments alone justified the switch. Designers can now review changes in context before anything ships. That feedback loop used to take days."</p>
450
+ <div class="flex items-center gap-3">
451
+ <div class="w-9 h-9 rounded-full bg-green-600 flex items-center justify-center text-white text-sm font-bold">PR</div>
452
+ <div>
453
+ <div class="text-sm font-semibold text-[#0f0f0f]">Priya Rajan</div>
454
+ <div class="text-xs text-[#888]">Lead Frontend Eng, Forma</div>
455
+ </div>
456
+ </div>
457
+ </div>
458
+ <div>
459
+ <p class="text-[#0f0f0f] text-lg leading-relaxed mb-6">"I deprecated our entire Kubernetes deployment pipeline. Three engineers spent 30% of their time on it. Now nobody thinks about infrastructure. That's the point."</p>
460
+ <div class="flex items-center gap-3">
461
+ <div class="w-9 h-9 rounded-full bg-[#0f0f0f] flex items-center justify-center text-white text-sm font-bold">TW</div>
462
+ <div>
463
+ <div class="text-sm font-semibold text-[#0f0f0f]">Tyler Wong</div>
464
+ <div class="text-xs text-[#888]">CTO, Fieldstone</div>
465
+ </div>
466
+ </div>
467
+ </div>
468
+ </div>
469
+ </div>
470
+ </section>
471
+
472
+ <!-- PRICING -->
473
+ <section class="py-24 px-8 bg-[#0f0f0f] text-white">
474
+ <div class="max-w-7xl mx-auto">
475
+ <div class="mb-14">
476
+ <h2 class="font-display text-5xl font-extrabold mb-3">Simple pricing.</h2>
477
+ <p class="text-white/50 text-lg font-light">Start free, no card required. Scale when you need to.</p>
478
+ </div>
479
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-px bg-white/10">
480
+ <!-- Hobby -->
481
+ <div class="bg-[#0f0f0f] p-10">
482
+ <div class="font-mono text-xs text-white/30 uppercase tracking-widest mb-4">Hobby</div>
483
+ <div class="font-display text-5xl font-extrabold mb-1">$0</div>
484
+ <div class="text-white/40 text-sm mb-8">Free forever</div>
485
+ <ul class="space-y-4 text-sm text-white/60 mb-10">
486
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Unlimited deploys</li>
487
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>100 GB bandwidth / month</li>
488
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Preview deployments</li>
489
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Edge functions</li>
490
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>3 projects</li>
491
+ </ul>
492
+ <a href="#" class="block text-center border border-white/20 hover:border-white/40 text-white font-medium py-3 transition-colors">Get started</a>
493
+ </div>
494
+ <!-- Pro -->
495
+ <div class="bg-[#161616] p-10 relative">
496
+ <div class="absolute top-6 right-6 font-mono text-xs bg-orange text-white px-2 py-0.5">Most popular</div>
497
+ <div class="font-mono text-xs text-orange uppercase tracking-widest mb-4">Pro</div>
498
+ <div class="font-display text-5xl font-extrabold mb-1">$20</div>
499
+ <div class="text-white/40 text-sm mb-8">Per member / month</div>
500
+ <ul class="space-y-4 text-sm text-white/60 mb-10">
501
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Everything in Hobby</li>
502
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>1 TB bandwidth / month</li>
503
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Unlimited projects</li>
504
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Team roles & permissions</li>
505
+ <li class="flex items-start gap-3"><span class="text-orange mt-0.5">—</span>Audit logs</li>
506
+ </ul>
507
+ <a href="#" class="block text-center bg-orange hover:bg-[#e03d00] text-white font-semibold py-3 transition-colors">Deploy now</a>
508
+ </div>
509
+ <!-- Enterprise -->
510
+ <div class="bg-[#0f0f0f] p-10">
511
+ <div class="font-mono text-xs text-white/30 uppercase tracking-widest mb-4">Enterprise</div>
512
+ <div class="font-display text-5xl font-extrabold mb-1">Custom</div>
513
+ <div class="text-white/40 text-sm mb-8">Annual contract</div>
514
+ <ul class="space-y-4 text-sm text-white/60 mb-10">
515
+ <li class="flex items-start gap-3"><span class="text-white/40 mt-0.5">—</span>Everything in Pro</li>
516
+ <li class="flex items-start gap-3"><span class="text-white/40 mt-0.5">—</span>Custom bandwidth</li>
517
+ <li class="flex items-start gap-3"><span class="text-white/40 mt-0.5">—</span>SSO / SAML</li>
518
+ <li class="flex items-start gap-3"><span class="text-white/40 mt-0.5">—</span>SLA guarantees</li>
519
+ <li class="flex items-start gap-3"><span class="text-white/40 mt-0.5">—</span>Dedicated support</li>
520
+ </ul>
521
+ <a href="#" class="block text-center border border-white/20 hover:border-white/40 text-white font-medium py-3 transition-colors">Talk to sales</a>
522
+ </div>
523
+ </div>
524
+ </div>
525
+ </section>
526
+
527
+ <!-- FINAL CTA -->
528
+ <section class="py-28 px-8 text-center">
529
+ <div class="max-w-3xl mx-auto">
530
+ <h2 class="font-display text-6xl font-extrabold text-[#0f0f0f] leading-tight mb-6">
531
+ Your next deploy takes 17 seconds.
532
+ </h2>
533
+ <p class="text-[#555] text-xl font-light mb-12">
534
+ Stop managing infrastructure. Ship the thing.
535
+ </p>
536
+ <a href="#" class="inline-block big-cta text-white font-bold px-14 py-5 text-lg">
537
+ Start for free — no card needed
538
+ </a>
539
+ </div>
540
+ </section>
541
+
542
+ <!-- FOOTER -->
543
+ <footer class="border-t border-[#e5e5e5] py-14 px-8">
544
+ <div class="max-w-7xl mx-auto">
545
+ <div class="grid grid-cols-2 md:grid-cols-6 gap-8 mb-12">
546
+ <div class="col-span-2">
547
+ <div class="font-display font-bold text-xl text-[#0f0f0f] mb-3">Slipstream</div>
548
+ <p class="text-sm text-[#888] leading-relaxed font-light">The deployment platform for web developers who ship.</p>
549
+ </div>
550
+ <div>
551
+ <div class="font-mono text-xs text-[#999] uppercase tracking-widest mb-4">Product</div>
552
+ <ul class="space-y-2.5 text-sm text-[#555]">
553
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Features</a></li>
554
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Pricing</a></li>
555
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Changelog</a></li>
556
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Status</a></li>
557
+ </ul>
558
+ </div>
559
+ <div>
560
+ <div class="font-mono text-xs text-[#999] uppercase tracking-widest mb-4">Docs</div>
561
+ <ul class="space-y-2.5 text-sm text-[#555]">
562
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Quickstart</a></li>
563
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">CLI</a></li>
564
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Edge functions</a></li>
565
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">API reference</a></li>
566
+ </ul>
567
+ </div>
568
+ <div>
569
+ <div class="font-mono text-xs text-[#999] uppercase tracking-widest mb-4">Company</div>
570
+ <ul class="space-y-2.5 text-sm text-[#555]">
571
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">About</a></li>
572
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Blog</a></li>
573
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Careers</a></li>
574
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Contact</a></li>
575
+ </ul>
576
+ </div>
577
+ <div>
578
+ <div class="font-mono text-xs text-[#999] uppercase tracking-widest mb-4">Legal</div>
579
+ <ul class="space-y-2.5 text-sm text-[#555]">
580
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Privacy</a></li>
581
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Terms</a></li>
582
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">Security</a></li>
583
+ <li><a href="#" class="hover:text-[#0f0f0f] transition-colors">DPA</a></li>
584
+ </ul>
585
+ </div>
586
+ </div>
587
+ <div class="border-t border-[#e5e5e5] pt-8 flex flex-col md:flex-row items-center justify-between gap-4">
588
+ <span class="text-sm text-[#999]">© 2025 Slipstream, Inc. All rights reserved.</span>
589
+ <span class="font-mono text-xs text-[#bbb]">Built on Slipstream — obviously.</span>
590
+ </div>
591
+ </div>
592
+ </footer>
593
+
594
+ </body>
595
+ </html>