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,398 @@
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 — The deployment platform for serious teams</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=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,700;0,9..40,900;1,9..40,400&family=DM+Mono:wght@400;500&display=swap" rel="stylesheet" />
10
+ <style>
11
+ * { box-sizing: border-box; }
12
+ body {
13
+ font-family: 'DM Sans', sans-serif;
14
+ background: #fafaf9;
15
+ color: #1c1917;
16
+ }
17
+ .font-mono { font-family: 'DM Mono', monospace; }
18
+ .hero-gradient {
19
+ background: linear-gradient(135deg, #f0fdf4 0%, #fafaf9 40%, #fefce8 100%);
20
+ }
21
+ .accent { color: #16a34a; }
22
+ .card-shadow {
23
+ box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 20px rgba(0,0,0,0.05);
24
+ }
25
+ .deploy-card {
26
+ box-shadow: 0 0 0 1px rgba(0,0,0,0.06), 0 8px 32px rgba(0,0,0,0.08);
27
+ }
28
+ .step-line::after {
29
+ content: '';
30
+ position: absolute;
31
+ left: 19px;
32
+ top: 40px;
33
+ bottom: -20px;
34
+ width: 1px;
35
+ background: linear-gradient(to bottom, #d1d5db, transparent);
36
+ }
37
+ .feature-hover { transition: all 0.2s; }
38
+ .feature-hover:hover { transform: translateY(-2px); box-shadow: 0 8px 40px rgba(0,0,0,0.1); }
39
+ </style>
40
+ </head>
41
+ <body class="antialiased">
42
+
43
+ <!-- NAV -->
44
+ <nav class="sticky top-0 z-50 bg-white/90 backdrop-blur-sm border-b border-stone-200">
45
+ <div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between">
46
+ <div class="flex items-center gap-10">
47
+ <div class="flex items-center gap-2">
48
+ <div class="w-7 h-7 rounded-lg bg-green-600 flex items-center justify-center">
49
+ <svg class="w-4 h-4 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
50
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
51
+ </svg>
52
+ </div>
53
+ <span class="font-bold text-lg text-stone-900">Slipstream</span>
54
+ </div>
55
+ <div class="hidden md:flex items-center gap-8 text-sm text-stone-500 font-medium">
56
+ <a href="#" class="hover:text-stone-900 transition-colors">Product</a>
57
+ <a href="#" class="hover:text-stone-900 transition-colors">Docs</a>
58
+ <a href="#" class="hover:text-stone-900 transition-colors">Pricing</a>
59
+ <a href="#" class="hover:text-stone-900 transition-colors">Enterprise</a>
60
+ <a href="#" class="hover:text-stone-900 transition-colors">Blog</a>
61
+ </div>
62
+ </div>
63
+ <div class="flex items-center gap-3">
64
+ <a href="#" class="text-sm text-stone-600 hover:text-stone-900 font-medium px-3 py-2 transition-colors">Sign in</a>
65
+ <a href="#" class="text-sm bg-stone-900 hover:bg-stone-700 text-white font-semibold px-5 py-2 rounded-lg transition-colors">Start for free</a>
66
+ </div>
67
+ </div>
68
+ </nav>
69
+
70
+ <!-- HERO -->
71
+ <section class="hero-gradient pt-24 pb-20 px-6">
72
+ <div class="max-w-5xl mx-auto">
73
+ <div class="max-w-3xl">
74
+ <div class="inline-flex items-center gap-2 text-sm font-medium text-green-700 bg-green-50 border border-green-200 rounded-full px-4 py-1.5 mb-8">
75
+ <span class="w-2 h-2 rounded-full bg-green-500 inline-block"></span>
76
+ New: Edge Functions GA — deploy compute at the edge
77
+ </div>
78
+
79
+ <h1 class="text-6xl md:text-7xl font-black tracking-tight leading-none text-stone-900 mb-6">
80
+ Deploy web apps<br />
81
+ like you mean it.
82
+ </h1>
83
+
84
+ <p class="text-xl text-stone-500 font-normal leading-relaxed max-w-2xl mb-10">
85
+ Connect your repository. Push your code. That's all you do.
86
+ Slipstream handles builds, preview environments, and global distribution — automatically.
87
+ </p>
88
+
89
+ <div class="flex flex-col sm:flex-row items-start gap-3 mb-14">
90
+ <a href="#" class="bg-stone-900 hover:bg-stone-700 text-white font-bold px-8 py-3.5 rounded-xl text-base transition-colors shadow-sm">
91
+ Deploy now — it's free
92
+ </a>
93
+ <a href="#" class="flex items-center gap-2 text-stone-700 hover:text-stone-900 font-semibold px-6 py-3.5 text-base transition-colors">
94
+ <svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
95
+ <path stroke-linecap="round" stroke-linejoin="round" d="M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z" />
96
+ </svg>
97
+ Watch 2-min demo
98
+ </a>
99
+ </div>
100
+
101
+ <!-- Deploy status card -->
102
+ <div class="deploy-card rounded-2xl bg-white p-1 max-w-lg">
103
+ <div class="bg-stone-50 rounded-xl p-5">
104
+ <div class="flex items-center justify-between mb-4">
105
+ <div class="flex items-center gap-3">
106
+ <div class="w-8 h-8 rounded-lg bg-stone-900 flex items-center justify-center">
107
+ <svg class="w-4 h-4 text-white" fill="currentColor" viewBox="0 0 24 24">
108
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
109
+ </svg>
110
+ </div>
111
+ <div>
112
+ <div class="text-sm font-semibold text-stone-800">feat/redesign-homepage</div>
113
+ <div class="text-xs text-stone-400 font-mono">a3f9c2b — 2 minutes ago</div>
114
+ </div>
115
+ </div>
116
+ <div class="flex items-center gap-1.5 text-xs font-semibold text-green-700 bg-green-50 border border-green-200 rounded-full px-3 py-1">
117
+ <svg class="w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
118
+ <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" />
119
+ </svg>
120
+ Ready
121
+ </div>
122
+ </div>
123
+ <div class="space-y-2.5">
124
+ <div class="flex items-center justify-between text-sm">
125
+ <span class="text-stone-500 flex items-center gap-2">
126
+ <svg class="w-3.5 h-3.5 text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" /></svg>
127
+ Build
128
+ </span>
129
+ <span class="text-stone-400 font-mono text-xs">14.3s</span>
130
+ </div>
131
+ <div class="flex items-center justify-between text-sm">
132
+ <span class="text-stone-500 flex items-center gap-2">
133
+ <svg class="w-3.5 h-3.5 text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" /></svg>
134
+ Deploy to edge
135
+ </span>
136
+ <span class="text-stone-400 font-mono text-xs">2.1s</span>
137
+ </div>
138
+ <div class="pt-2 border-t border-stone-200">
139
+ <div class="text-xs text-stone-400 mb-1">Preview URL</div>
140
+ <a href="#" class="text-sm text-green-700 font-mono hover:underline">https://pr-88.acme.slipstream.app</a>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ </div>
147
+ </section>
148
+
149
+ <!-- FRAMEWORK LOGOS -->
150
+ <section class="py-14 px-6 border-y border-stone-100">
151
+ <div class="max-w-5xl mx-auto">
152
+ <p class="text-center text-xs font-mono text-stone-400 uppercase tracking-widest mb-7">Works with every modern framework</p>
153
+ <div class="flex flex-wrap items-center justify-center gap-x-10 gap-y-4">
154
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
155
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M11.572 0c-.176 0-.31.001-.358.007a19.76 19.76 0 01-.364.033C7.443.346 4.25 2.185 2.228 5.012a11.875 11.875 0 00-2.119 5.243c-.096.659-.108.854-.108 1.747s.012 1.089.108 1.748c.652 4.506 3.86 8.292 8.209 9.695.779.25 1.6.422 2.534.525.363.04 1.935.04 2.299 0 1.611-.178 2.977-.577 4.323-1.264.207-.106.247-.134.219-.158-.02-.013-.9-1.193-1.955-2.62l-1.919-2.592-2.404-3.558a338.739 338.739 0 00-2.422-3.556c-.009-.002-.018 1.579-.023 3.51-.007 3.38-.01 3.515-.052 3.595a.426.426 0 01-.206.214c-.075.037-.14.044-.495.044H7.81l-.108-.068a.438.438 0 01-.157-.171l-.05-.106.006-4.703.007-4.705.072-.092a.645.645 0 01.174-.143c.096-.047.134-.051.54-.051.478 0 .558.018.682.154.035.038 1.337 1.999 2.895 4.361a10760.433 10760.433 0 004.735 7.17l1.9 2.879.096-.063a12.317 12.317 0 002.466-2.163 11.944 11.944 0 002.824-6.134c.096-.66.108-.854.108-1.748 0-.893-.012-1.088-.108-1.747-.652-4.506-3.859-8.292-8.208-9.695a12.597 12.597 0 00-2.499-.523A33.119 33.119 0 0011.573 0zm4.069 7.217c.347 0 .408.005.486.047a.473.473 0 01.237.277c.018.06.023 1.365.018 4.304l-.006 4.218-.744-1.14-.746-1.14v-3.066c0-1.982.01-3.097.023-3.15a.478.478 0 01.233-.296c.096-.05.13-.054.5-.054z"/></svg>
156
+ <span class="text-sm font-semibold">Next.js</span>
157
+ </div>
158
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
159
+ <span class="text-sm font-semibold">SvelteKit</span>
160
+ </div>
161
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
162
+ <span class="text-sm font-semibold">Astro</span>
163
+ </div>
164
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
165
+ <span class="text-sm font-semibold">Remix</span>
166
+ </div>
167
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
168
+ <span class="text-sm font-semibold">Nuxt</span>
169
+ </div>
170
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
171
+ <span class="text-sm font-semibold">Vite</span>
172
+ </div>
173
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
174
+ <span class="text-sm font-semibold">Gatsby</span>
175
+ </div>
176
+ <div class="flex items-center gap-2 text-stone-400 hover:text-stone-700 transition-colors cursor-pointer">
177
+ <span class="text-sm font-semibold">SolidStart</span>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ </section>
182
+
183
+ <!-- HOW IT WORKS -->
184
+ <section class="py-24 px-6">
185
+ <div class="max-w-5xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-16 items-center">
186
+ <div>
187
+ <p class="text-xs font-mono text-green-600 uppercase tracking-widest mb-5">Setup in 3 steps</p>
188
+ <h2 class="text-4xl font-black text-stone-900 tracking-tight mb-10">From zero to production<br />in under 2 minutes.</h2>
189
+
190
+ <div class="space-y-8">
191
+ <div class="flex gap-5 relative step-line">
192
+ <div class="w-10 h-10 shrink-0 rounded-full bg-stone-900 text-white flex items-center justify-center text-sm font-black">1</div>
193
+ <div>
194
+ <h3 class="font-bold text-stone-800 mb-1">Connect your repository</h3>
195
+ <p class="text-stone-500 text-sm leading-relaxed">Authorize Slipstream on GitHub, GitLab, or Bitbucket. Select a repo. Done.</p>
196
+ </div>
197
+ </div>
198
+ <div class="flex gap-5 relative step-line">
199
+ <div class="w-10 h-10 shrink-0 rounded-full bg-stone-900 text-white flex items-center justify-center text-sm font-black">2</div>
200
+ <div>
201
+ <h3 class="font-bold text-stone-800 mb-1">Configure (or don't)</h3>
202
+ <p class="text-stone-500 text-sm leading-relaxed">We detect your framework and set build settings automatically. Override anything you want.</p>
203
+ </div>
204
+ </div>
205
+ <div class="flex gap-5">
206
+ <div class="w-10 h-10 shrink-0 rounded-full bg-green-600 text-white flex items-center justify-center text-sm font-black">3</div>
207
+ <div>
208
+ <h3 class="font-bold text-stone-800 mb-1">Push and ship</h3>
209
+ <p class="text-stone-500 text-sm leading-relaxed">Every push triggers a build and deploy. Every PR gets a preview URL. Production stays separate from previews.</p>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ </div>
214
+
215
+ <!-- Code block -->
216
+ <div class="card-shadow rounded-2xl overflow-hidden bg-stone-900">
217
+ <div class="flex items-center gap-2 px-5 py-3 bg-stone-800">
218
+ <div class="w-3 h-3 rounded-full bg-red-400"></div>
219
+ <div class="w-3 h-3 rounded-full bg-yellow-400"></div>
220
+ <div class="w-3 h-3 rounded-full bg-green-400"></div>
221
+ <span class="ml-2 text-xs text-stone-400 font-mono">slipstream.yml</span>
222
+ </div>
223
+ <div class="p-6 font-mono text-sm text-stone-300 leading-7">
224
+ <div class="text-stone-500"># Optional config — most projects need none.</div>
225
+ <div class="mt-2"><span class="text-green-400">name</span><span class="text-stone-400">:</span> my-app</div>
226
+ <div><span class="text-green-400">framework</span><span class="text-stone-400">:</span> nextjs <span class="text-stone-600"># auto-detected</span></div>
227
+ <div class="mt-2"><span class="text-green-400">build</span><span class="text-stone-400">:</span></div>
228
+ <div class="ml-4"><span class="text-green-400">command</span><span class="text-stone-400">:</span> npm run build</div>
229
+ <div class="ml-4"><span class="text-green-400">output</span><span class="text-stone-400">:</span> .next</div>
230
+ <div class="mt-2"><span class="text-green-400">env</span><span class="text-stone-400">:</span></div>
231
+ <div class="ml-4"><span class="text-green-400">DATABASE_URL</span><span class="text-stone-400">:</span> <span class="text-amber-300">$DATABASE_URL</span></div>
232
+ <div class="ml-4"><span class="text-green-400">NEXT_PUBLIC_API</span><span class="text-stone-400">:</span> <span class="text-amber-300">$API_URL</span></div>
233
+ <div class="mt-3 pt-3 border-t border-stone-700 text-stone-500"># That's everything. Push to deploy.</div>
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </section>
238
+
239
+ <!-- FEATURES GRID -->
240
+ <section class="py-20 px-6 bg-stone-50 border-y border-stone-100">
241
+ <div class="max-w-5xl mx-auto">
242
+ <div class="text-center mb-14">
243
+ <h2 class="text-4xl font-black text-stone-900 tracking-tight">Everything you need. Nothing you don't.</h2>
244
+ <p class="text-stone-500 mt-3 text-lg">We made deliberate choices about what belongs in a deployment platform.</p>
245
+ </div>
246
+
247
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
248
+ <div class="feature-hover bg-white rounded-2xl p-7 card-shadow">
249
+ <div class="w-11 h-11 rounded-xl bg-green-50 flex items-center justify-center mb-5">
250
+ <svg class="w-6 h-6 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
251
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" />
252
+ </svg>
253
+ </div>
254
+ <h3 class="font-bold text-stone-900 mb-2">Instant deploys</h3>
255
+ <p class="text-sm text-stone-500 leading-relaxed">Build and deploy in under 20 seconds for most projects. No queue, no waiting.</p>
256
+ </div>
257
+
258
+ <div class="feature-hover bg-white rounded-2xl p-7 card-shadow">
259
+ <div class="w-11 h-11 rounded-xl bg-green-50 flex items-center justify-center mb-5">
260
+ <svg class="w-6 h-6 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
261
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z" />
262
+ </svg>
263
+ </div>
264
+ <h3 class="font-bold text-stone-900 mb-2">PR Preview environments</h3>
265
+ <p class="text-sm text-stone-500 leading-relaxed">Every pull request gets an isolated deployment. Review changes before they go live.</p>
266
+ </div>
267
+
268
+ <div class="feature-hover bg-white rounded-2xl p-7 card-shadow">
269
+ <div class="w-11 h-11 rounded-xl bg-green-50 flex items-center justify-center mb-5">
270
+ <svg class="w-6 h-6 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
271
+ <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" />
272
+ </svg>
273
+ </div>
274
+ <h3 class="font-bold text-stone-900 mb-2">Global edge CDN</h3>
275
+ <p class="text-sm text-stone-500 leading-relaxed">300+ PoPs worldwide. Static assets served from the node closest to your users.</p>
276
+ </div>
277
+
278
+ <div class="feature-hover bg-white rounded-2xl p-7 card-shadow">
279
+ <div class="w-11 h-11 rounded-xl bg-green-50 flex items-center justify-center mb-5">
280
+ <svg class="w-6 h-6 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
281
+ <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" />
282
+ </svg>
283
+ </div>
284
+ <h3 class="font-bold text-stone-900 mb-2">Edge functions</h3>
285
+ <p class="text-sm text-stone-500 leading-relaxed">Run serverless JavaScript at the edge. Sub-10ms cold starts, infinite scale.</p>
286
+ </div>
287
+
288
+ <div class="feature-hover bg-white rounded-2xl p-7 card-shadow">
289
+ <div class="w-11 h-11 rounded-xl bg-green-50 flex items-center justify-center mb-5">
290
+ <svg class="w-6 h-6 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
291
+ <path stroke-linecap="round" stroke-linejoin="round" d="M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z" />
292
+ </svg>
293
+ </div>
294
+ <h3 class="font-bold text-stone-900 mb-2">Env variable management</h3>
295
+ <p class="text-sm text-stone-500 leading-relaxed">Scoped secrets per environment. Inject at build time or runtime. Encrypted at rest.</p>
296
+ </div>
297
+
298
+ <div class="feature-hover bg-white rounded-2xl p-7 card-shadow">
299
+ <div class="w-11 h-11 rounded-xl bg-green-50 flex items-center justify-center mb-5">
300
+ <svg class="w-6 h-6 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
301
+ <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" />
302
+ </svg>
303
+ </div>
304
+ <h3 class="font-bold text-stone-900 mb-2">Team collaboration</h3>
305
+ <p class="text-sm text-stone-500 leading-relaxed">Roles, permissions, audit logs, and PR comments with preview links built in.</p>
306
+ </div>
307
+ </div>
308
+ </div>
309
+ </section>
310
+
311
+ <!-- QUOTE -->
312
+ <section class="py-24 px-6">
313
+ <div class="max-w-3xl mx-auto text-center">
314
+ <blockquote class="text-3xl font-bold text-stone-800 leading-snug mb-8">
315
+ "We eliminated our entire ops rotation the week we switched to Slipstream. Not an exaggeration — there was nothing left to operate."
316
+ </blockquote>
317
+ <div class="flex items-center justify-center gap-3">
318
+ <div class="w-10 h-10 rounded-full bg-stone-200 flex items-center justify-center font-bold text-stone-600">MK</div>
319
+ <div class="text-left">
320
+ <div class="text-sm font-semibold text-stone-800">Marcus Kim</div>
321
+ <div class="text-sm text-stone-400">CTO, Layers</div>
322
+ </div>
323
+ </div>
324
+ </div>
325
+ </section>
326
+
327
+ <!-- CTA -->
328
+ <section class="py-20 px-6 bg-stone-900">
329
+ <div class="max-w-2xl mx-auto text-center">
330
+ <h2 class="text-4xl font-black text-white mb-4">Stop managing servers.<br />Start shipping software.</h2>
331
+ <p class="text-stone-400 mb-10 text-lg">Free to start. No credit card required. Production-ready in 2 minutes.</p>
332
+ <div class="flex flex-col sm:flex-row items-center justify-center gap-4">
333
+ <a href="#" class="w-full sm:w-auto bg-green-500 hover:bg-green-400 text-white font-bold px-10 py-4 rounded-xl text-base transition-colors">
334
+ Deploy now — free forever
335
+ </a>
336
+ <a href="#" class="w-full sm:w-auto text-stone-400 hover:text-white font-medium px-8 py-4 text-base transition-colors">
337
+ Talk to sales →
338
+ </a>
339
+ </div>
340
+ </div>
341
+ </section>
342
+
343
+ <!-- FOOTER -->
344
+ <footer class="bg-stone-900 border-t border-stone-800 py-14 px-6">
345
+ <div class="max-w-6xl mx-auto">
346
+ <div class="grid grid-cols-2 md:grid-cols-5 gap-8 mb-12">
347
+ <div class="col-span-2">
348
+ <div class="flex items-center gap-2 mb-4">
349
+ <div class="w-7 h-7 rounded-lg bg-green-600 flex items-center justify-center">
350
+ <svg class="w-4 h-4 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
351
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
352
+ </svg>
353
+ </div>
354
+ <span class="font-bold text-white">Slipstream</span>
355
+ </div>
356
+ <p class="text-sm text-stone-500 leading-relaxed">The deployment platform for modern frontend teams.</p>
357
+ </div>
358
+ <div>
359
+ <div class="text-xs font-mono text-stone-500 uppercase tracking-widest mb-4">Product</div>
360
+ <ul class="space-y-2.5 text-sm text-stone-400">
361
+ <li><a href="#" class="hover:text-white transition-colors">Features</a></li>
362
+ <li><a href="#" class="hover:text-white transition-colors">Pricing</a></li>
363
+ <li><a href="#" class="hover:text-white transition-colors">Changelog</a></li>
364
+ <li><a href="#" class="hover:text-white transition-colors">Roadmap</a></li>
365
+ </ul>
366
+ </div>
367
+ <div>
368
+ <div class="text-xs font-mono text-stone-500 uppercase tracking-widest mb-4">Docs</div>
369
+ <ul class="space-y-2.5 text-sm text-stone-400">
370
+ <li><a href="#" class="hover:text-white transition-colors">Get started</a></li>
371
+ <li><a href="#" class="hover:text-white transition-colors">CLI reference</a></li>
372
+ <li><a href="#" class="hover:text-white transition-colors">Edge functions</a></li>
373
+ <li><a href="#" class="hover:text-white transition-colors">Integrations</a></li>
374
+ </ul>
375
+ </div>
376
+ <div>
377
+ <div class="text-xs font-mono text-stone-500 uppercase tracking-widest mb-4">Company</div>
378
+ <ul class="space-y-2.5 text-sm text-stone-400">
379
+ <li><a href="#" class="hover:text-white transition-colors">Blog</a></li>
380
+ <li><a href="#" class="hover:text-white transition-colors">About</a></li>
381
+ <li><a href="#" class="hover:text-white transition-colors">Careers</a></li>
382
+ <li><a href="#" class="hover:text-white transition-colors">Status</a></li>
383
+ </ul>
384
+ </div>
385
+ </div>
386
+ <div class="border-t border-stone-800 pt-8 flex flex-col md:flex-row items-center justify-between gap-4 text-sm text-stone-500">
387
+ <span>© 2025 Slipstream, Inc.</span>
388
+ <div class="flex gap-6">
389
+ <a href="#" class="hover:text-stone-300 transition-colors">Privacy</a>
390
+ <a href="#" class="hover:text-stone-300 transition-colors">Terms</a>
391
+ <a href="#" class="hover:text-stone-300 transition-colors">Security</a>
392
+ </div>
393
+ </div>
394
+ </div>
395
+ </footer>
396
+
397
+ </body>
398
+ </html>