forgedock 1.0.17 → 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.
- package/README.md +34 -1
- package/bin/cross-publish.mjs +344 -0
- package/bin/forgedock.mjs +229 -17
- package/commands/autopilot.md +77 -0
- package/commands/design-bench.md +176 -0
- package/commands/design-render-critique-loop.md +103 -0
- package/commands/design.md +259 -0
- package/commands/issue.md +7 -3
- package/commands/orchestrate.md +121 -0
- package/commands/qa-sweep.md +37 -2
- package/commands/quality-gate.md +30 -0
- package/commands/review-pr-staging.md +158 -2
- package/commands/test-gate.md +929 -0
- package/commands/work-on/build/implement.md +5 -3
- package/commands/work-on.md +53 -3
- package/docs/CI.md +177 -0
- package/docs/FORGE-PROTOCOL.md +324 -0
- package/docs/articles/b-vs-c-baseline.md +210 -0
- package/docs/articles/full-abc-benchmark.md +205 -0
- package/docs/articles/selective-spec-loading-token-savings.md +140 -0
- package/docs/design/abc-benchmark.md +195 -0
- package/docs/design/design-architect-rationale.md +123 -0
- package/docs/design/design-memory.md +61 -0
- package/docs/design/design-spec-schema.md +248 -0
- package/docs/design/design-system-lint.md +150 -0
- package/docs/design/divergent-generation.md +106 -0
- package/docs/design/effects-appropriateness.md +133 -0
- package/docs/design/fixtures/briefs/README.md +47 -0
- package/docs/design/fixtures/briefs/cadence.md +39 -0
- package/docs/design/fixtures/briefs/plume.md +39 -0
- package/docs/design/fixtures/briefs/slipstream.md +39 -0
- package/docs/design/fixtures/briefs/tender.md +39 -0
- package/docs/design/fixtures/briefs/voltage.md +39 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/cadence/arm-b/run-1.html +364 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/cadence/arm-b/run-2.html +420 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/cadence/arm-b/run-3.html +506 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/plume/arm-b/run-1.html +611 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/plume/arm-b/run-2.html +594 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/plume/arm-b/run-3.html +817 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/runs.json +175 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/scorecard.json +138 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/slipstream/arm-b/run-1.html +373 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/slipstream/arm-b/run-2.html +398 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/slipstream/arm-b/run-3.html +595 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/tender/arm-b/run-1.html +531 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/tender/arm-b/run-2.html +565 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/tender/arm-b/run-3.html +674 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/voltage/arm-b/run-1.html +388 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/voltage/arm-b/run-2.html +463 -0
- package/docs/design/fixtures/runs/b-vs-c-baseline/voltage/arm-b/run-3.html +568 -0
- package/docs/design/fixtures/runs/full-abc/cadence/arm-a/run-1.html +562 -0
- package/docs/design/fixtures/runs/full-abc/cadence/arm-a/run-2.html +618 -0
- package/docs/design/fixtures/runs/full-abc/cadence/arm-a/run-3.html +618 -0
- package/docs/design/fixtures/runs/full-abc/cadence/arm-b/run-1.html +364 -0
- package/docs/design/fixtures/runs/full-abc/cadence/arm-b/run-2.html +420 -0
- package/docs/design/fixtures/runs/full-abc/cadence/arm-b/run-3.html +506 -0
- package/docs/design/fixtures/runs/full-abc/plume/arm-a/run-1.html +527 -0
- package/docs/design/fixtures/runs/full-abc/plume/arm-a/run-2.html +445 -0
- package/docs/design/fixtures/runs/full-abc/plume/arm-a/run-3.html +483 -0
- package/docs/design/fixtures/runs/full-abc/plume/arm-b/run-1.html +611 -0
- package/docs/design/fixtures/runs/full-abc/plume/arm-b/run-2.html +594 -0
- package/docs/design/fixtures/runs/full-abc/plume/arm-b/run-3.html +817 -0
- package/docs/design/fixtures/runs/full-abc/runs.json +190 -0
- package/docs/design/fixtures/runs/full-abc/scorecard.json +144 -0
- package/docs/design/fixtures/runs/full-abc/slipstream/arm-a/run-1.html +496 -0
- package/docs/design/fixtures/runs/full-abc/slipstream/arm-a/run-2.html +447 -0
- package/docs/design/fixtures/runs/full-abc/slipstream/arm-a/run-3.html +564 -0
- package/docs/design/fixtures/runs/full-abc/slipstream/arm-b/run-1.html +373 -0
- package/docs/design/fixtures/runs/full-abc/slipstream/arm-b/run-2.html +398 -0
- package/docs/design/fixtures/runs/full-abc/slipstream/arm-b/run-3.html +595 -0
- package/docs/design/fixtures/runs/full-abc/tender/arm-a/run-1.html +622 -0
- package/docs/design/fixtures/runs/full-abc/tender/arm-a/run-2.html +475 -0
- package/docs/design/fixtures/runs/full-abc/tender/arm-a/run-3.html +660 -0
- package/docs/design/fixtures/runs/full-abc/tender/arm-b/run-1.html +531 -0
- package/docs/design/fixtures/runs/full-abc/tender/arm-b/run-2.html +565 -0
- package/docs/design/fixtures/runs/full-abc/tender/arm-b/run-3.html +674 -0
- package/docs/design/fixtures/runs/full-abc/voltage/arm-a/run-1.html +525 -0
- package/docs/design/fixtures/runs/full-abc/voltage/arm-a/run-2.html +446 -0
- package/docs/design/fixtures/runs/full-abc/voltage/arm-a/run-3.html +463 -0
- package/docs/design/fixtures/runs/full-abc/voltage/arm-b/run-1.html +388 -0
- package/docs/design/fixtures/runs/full-abc/voltage/arm-b/run-2.html +463 -0
- package/docs/design/fixtures/runs/full-abc/voltage/arm-b/run-3.html +568 -0
- package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-a/run-1.html +1068 -0
- package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-a/run-2.html +1423 -0
- package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-a/run-3.html +1245 -0
- package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-b/run-1.html +305 -0
- package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-b/run-2.html +327 -0
- package/docs/design/fixtures/runs/full-abc-opus/cadence/arm-b/run-3.html +428 -0
- package/docs/design/fixtures/runs/full-abc-opus/plume/arm-a/run-1.html +1270 -0
- package/docs/design/fixtures/runs/full-abc-opus/plume/arm-a/run-2.html +1172 -0
- package/docs/design/fixtures/runs/full-abc-opus/plume/arm-a/run-3.html +1532 -0
- package/docs/design/fixtures/runs/full-abc-opus/plume/arm-b/run-1.html +315 -0
- package/docs/design/fixtures/runs/full-abc-opus/plume/arm-b/run-2.html +342 -0
- package/docs/design/fixtures/runs/full-abc-opus/plume/arm-b/run-3.html +353 -0
- package/docs/design/fixtures/runs/full-abc-opus/runs.json +190 -0
- package/docs/design/fixtures/runs/full-abc-opus/scorecard.json +144 -0
- package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-a/run-1.html +345 -0
- package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-a/run-2.html +396 -0
- package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-a/run-3.html +502 -0
- package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-b/run-1.html +408 -0
- package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-b/run-2.html +446 -0
- package/docs/design/fixtures/runs/full-abc-opus/slipstream/arm-b/run-3.html +496 -0
- package/docs/design/fixtures/runs/full-abc-opus/tender/arm-a/run-1.html +813 -0
- package/docs/design/fixtures/runs/full-abc-opus/tender/arm-a/run-2.html +711 -0
- package/docs/design/fixtures/runs/full-abc-opus/tender/arm-a/run-3.html +721 -0
- package/docs/design/fixtures/runs/full-abc-opus/tender/arm-b/run-1.html +280 -0
- package/docs/design/fixtures/runs/full-abc-opus/tender/arm-b/run-2.html +291 -0
- package/docs/design/fixtures/runs/full-abc-opus/tender/arm-b/run-3.html +366 -0
- package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-a/run-1.html +1010 -0
- package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-a/run-2.html +836 -0
- package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-a/run-3.html +930 -0
- package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-b/run-1.html +407 -0
- package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-b/run-2.html +396 -0
- package/docs/design/fixtures/runs/full-abc-opus/voltage/arm-b/run-3.html +529 -0
- package/docs/design/foundations/brutalist.css +294 -0
- package/docs/design/foundations/editorial.css +300 -0
- package/docs/design/foundations/minimal-luxury.css +295 -0
- package/docs/design/foundations/technical.css +293 -0
- package/docs/design/foundations/warm-photo.css +299 -0
- package/docs/design/reference-corpus.md +1726 -0
- package/docs/design/render-critique-loop.md +57 -0
- package/docs/spec-graph-schema.md +397 -0
- package/package.json +1 -1
- package/scripts/bench-scorecard.mjs +239 -0
- package/scripts/build-spec-graph.mjs +509 -0
- package/scripts/classify-lane.sh +0 -7
- package/scripts/design-system-lint.mjs +993 -0
- package/scripts/graph-query.sh +486 -0
- package/scripts/transition-label.sh +10 -2
- package/scripts/validate-spec-graph.sh +423 -0
- package/templates/workflows/forgedock-review.yml +96 -0
|
@@ -0,0 +1,565 @@
|
|
|
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>Tender — Global Payments Platform</title>
|
|
7
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
8
|
+
<script>
|
|
9
|
+
tailwind.config = {
|
|
10
|
+
theme: {
|
|
11
|
+
extend: {
|
|
12
|
+
colors: {
|
|
13
|
+
slate: {
|
|
14
|
+
950: '#0a0f1e',
|
|
15
|
+
},
|
|
16
|
+
indigo: {
|
|
17
|
+
950: '#1e1b4b',
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
24
|
+
<link href="https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
25
|
+
<style>
|
|
26
|
+
* { font-family: 'Sora', sans-serif; }
|
|
27
|
+
.mono { font-family: 'IBM Plex Mono', monospace; }
|
|
28
|
+
|
|
29
|
+
.hero-gradient {
|
|
30
|
+
background: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(99,102,241,0.25) 0%, transparent 70%),
|
|
31
|
+
linear-gradient(180deg, #0a0f1e 0%, #0d1224 100%);
|
|
32
|
+
}
|
|
33
|
+
.card-gradient {
|
|
34
|
+
background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
|
|
35
|
+
}
|
|
36
|
+
.border-gradient {
|
|
37
|
+
border: 1px solid transparent;
|
|
38
|
+
background-clip: padding-box;
|
|
39
|
+
position: relative;
|
|
40
|
+
}
|
|
41
|
+
.border-gradient::before {
|
|
42
|
+
content: '';
|
|
43
|
+
position: absolute;
|
|
44
|
+
inset: 0;
|
|
45
|
+
border-radius: inherit;
|
|
46
|
+
padding: 1px;
|
|
47
|
+
background: linear-gradient(135deg, rgba(99,102,241,0.4), rgba(99,102,241,0.05));
|
|
48
|
+
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
49
|
+
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
50
|
+
-webkit-mask-composite: xor;
|
|
51
|
+
mask-composite: exclude;
|
|
52
|
+
}
|
|
53
|
+
.glow-text {
|
|
54
|
+
text-shadow: 0 0 80px rgba(99,102,241,0.5);
|
|
55
|
+
}
|
|
56
|
+
.pill {
|
|
57
|
+
background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(99,102,241,0.05));
|
|
58
|
+
border: 1px solid rgba(99,102,241,0.3);
|
|
59
|
+
}
|
|
60
|
+
.stat-card {
|
|
61
|
+
background: linear-gradient(135deg, rgba(99,102,241,0.08) 0%, rgba(99,102,241,0.02) 100%);
|
|
62
|
+
border: 1px solid rgba(99,102,241,0.15);
|
|
63
|
+
}
|
|
64
|
+
.flow-line {
|
|
65
|
+
background: linear-gradient(to bottom, rgba(99,102,241,0.6), rgba(99,102,241,0.0));
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
68
|
+
</head>
|
|
69
|
+
<body class="bg-slate-950 text-white antialiased">
|
|
70
|
+
|
|
71
|
+
<!-- Nav -->
|
|
72
|
+
<nav class="fixed top-0 inset-x-0 z-50 bg-slate-950/70 backdrop-blur-xl border-b border-white/5">
|
|
73
|
+
<div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between">
|
|
74
|
+
<div class="flex items-center gap-10">
|
|
75
|
+
<div class="flex items-center gap-2">
|
|
76
|
+
<div class="w-7 h-7 rounded-lg bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center">
|
|
77
|
+
<span class="text-white text-xs font-bold">T</span>
|
|
78
|
+
</div>
|
|
79
|
+
<span class="font-bold text-white text-lg">Tender</span>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="hidden md:flex gap-8 text-sm text-slate-400">
|
|
82
|
+
<a href="#" class="hover:text-white transition-colors">Products</a>
|
|
83
|
+
<a href="#" class="hover:text-white transition-colors">Developers</a>
|
|
84
|
+
<a href="#" class="hover:text-white transition-colors">Pricing</a>
|
|
85
|
+
<a href="#" class="hover:text-white transition-colors">Enterprise</a>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="flex items-center gap-3">
|
|
89
|
+
<a href="#" class="text-sm text-slate-400 hover:text-white transition-colors">Sign in</a>
|
|
90
|
+
<a href="#" class="text-sm font-semibold bg-indigo-600 hover:bg-indigo-500 text-white px-4 py-2 rounded-lg transition-colors">Start building</a>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</nav>
|
|
94
|
+
|
|
95
|
+
<!-- Hero -->
|
|
96
|
+
<section class="hero-gradient pt-32 pb-28 relative overflow-hidden">
|
|
97
|
+
<!-- Decorative orbs -->
|
|
98
|
+
<div class="absolute top-20 left-1/4 w-96 h-96 bg-indigo-600/10 rounded-full blur-3xl pointer-events-none"></div>
|
|
99
|
+
<div class="absolute top-40 right-1/4 w-64 h-64 bg-purple-600/10 rounded-full blur-3xl pointer-events-none"></div>
|
|
100
|
+
|
|
101
|
+
<div class="max-w-6xl mx-auto px-6">
|
|
102
|
+
<!-- Badge -->
|
|
103
|
+
<div class="flex justify-center mb-8">
|
|
104
|
+
<span class="pill text-indigo-300 text-xs font-medium px-4 py-2 rounded-full mono">
|
|
105
|
+
Payments infrastructure · Global · Production-ready
|
|
106
|
+
</span>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<!-- Headline -->
|
|
110
|
+
<h1 class="text-center text-6xl md:text-7xl font-extrabold leading-none tracking-tight mb-6">
|
|
111
|
+
<span class="text-white">Accept payments.</span><br />
|
|
112
|
+
<span class="glow-text text-transparent bg-clip-text bg-gradient-to-r from-indigo-400 via-purple-400 to-indigo-300">
|
|
113
|
+
Move money. Scale globally.
|
|
114
|
+
</span>
|
|
115
|
+
</h1>
|
|
116
|
+
|
|
117
|
+
<p class="text-center text-xl text-slate-400 max-w-2xl mx-auto mb-10 leading-relaxed font-light">
|
|
118
|
+
Tender is the unified API layer for payments, subscriptions, and payouts. Fraud screening, compliance, and currency conversion are handled — so your team ships product, not financial plumbing.
|
|
119
|
+
</p>
|
|
120
|
+
|
|
121
|
+
<!-- CTAs -->
|
|
122
|
+
<div class="flex flex-wrap justify-center gap-4 mb-20">
|
|
123
|
+
<a href="#" class="flex items-center gap-2 bg-indigo-600 hover:bg-indigo-500 text-white font-semibold px-8 py-4 rounded-xl transition-all hover:shadow-2xl hover:shadow-indigo-500/20 text-sm">
|
|
124
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/></svg>
|
|
125
|
+
Start integrating
|
|
126
|
+
</a>
|
|
127
|
+
<a href="#" class="flex items-center gap-2 border border-white/10 hover:border-white/20 text-white font-medium px-8 py-4 rounded-xl transition-all bg-white/5 hover:bg-white/8 text-sm">
|
|
128
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg>
|
|
129
|
+
View the docs
|
|
130
|
+
</a>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<!-- Stats row -->
|
|
134
|
+
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 max-w-4xl mx-auto">
|
|
135
|
+
<div class="stat-card rounded-2xl p-6 text-center">
|
|
136
|
+
<p class="text-3xl font-bold text-white">$94B</p>
|
|
137
|
+
<p class="text-xs text-slate-500 mt-1 font-medium uppercase tracking-wide">Annual volume</p>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="stat-card rounded-2xl p-6 text-center">
|
|
140
|
+
<p class="text-3xl font-bold text-white">135+</p>
|
|
141
|
+
<p class="text-xs text-slate-500 mt-1 font-medium uppercase tracking-wide">Currencies</p>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="stat-card rounded-2xl p-6 text-center">
|
|
144
|
+
<p class="text-3xl font-bold text-white">47</p>
|
|
145
|
+
<p class="text-xs text-slate-500 mt-1 font-medium uppercase tracking-wide">Countries</p>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="stat-card rounded-2xl p-6 text-center">
|
|
148
|
+
<p class="text-3xl font-bold text-white">99.99%</p>
|
|
149
|
+
<p class="text-xs text-slate-500 mt-1 font-medium uppercase tracking-wide">Uptime SLA</p>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</section>
|
|
154
|
+
|
|
155
|
+
<!-- Code + features split -->
|
|
156
|
+
<section class="py-28 relative">
|
|
157
|
+
<div class="max-w-6xl mx-auto px-6">
|
|
158
|
+
<div class="grid lg:grid-cols-2 gap-20">
|
|
159
|
+
<!-- Left: code -->
|
|
160
|
+
<div>
|
|
161
|
+
<span class="text-indigo-400 text-sm font-semibold uppercase tracking-widest mono">Developer Experience</span>
|
|
162
|
+
<h2 class="text-4xl font-bold text-white mt-3 mb-5">One API. Every flow.</h2>
|
|
163
|
+
<p class="text-slate-400 leading-relaxed mb-8">Consistent resource model across payments, subscriptions, and payouts. SDKs for every major language, typed from the ground up. Ship your checkout in a day — not a sprint.</p>
|
|
164
|
+
|
|
165
|
+
<!-- Tab code snippet -->
|
|
166
|
+
<div class="bg-slate-900 rounded-2xl border border-white/8 overflow-hidden shadow-2xl">
|
|
167
|
+
<div class="flex border-b border-white/5">
|
|
168
|
+
<button class="mono text-xs px-5 py-3 text-indigo-300 border-b-2 border-indigo-500 bg-indigo-500/5">Node.js</button>
|
|
169
|
+
<button class="mono text-xs px-5 py-3 text-slate-500 hover:text-slate-300 transition-colors">Python</button>
|
|
170
|
+
<button class="mono text-xs px-5 py-3 text-slate-500 hover:text-slate-300 transition-colors">Go</button>
|
|
171
|
+
<button class="mono text-xs px-5 py-3 text-slate-500 hover:text-slate-300 transition-colors">Ruby</button>
|
|
172
|
+
</div>
|
|
173
|
+
<pre class="p-6 mono text-sm leading-7 text-slate-300 overflow-x-auto"><code><span class="text-slate-500">// Create a payment intent</span>
|
|
174
|
+
<span class="text-purple-400">const</span> payment <span class="text-slate-400">=</span> <span class="text-yellow-300">await</span> tender<span class="text-slate-400">.</span>payments<span class="text-slate-400">.</span><span class="text-blue-300">create</span><span class="text-slate-400">({</span>
|
|
175
|
+
amount<span class="text-slate-400">:</span> <span class="text-orange-300">5000</span><span class="text-slate-400">,</span>
|
|
176
|
+
currency<span class="text-slate-400">:</span> <span class="text-green-300">'eur'</span><span class="text-slate-400">,</span>
|
|
177
|
+
customer<span class="text-slate-400">:</span> <span class="text-green-300">'cus_9Km2aX'</span><span class="text-slate-400">,</span>
|
|
178
|
+
payment_method_types<span class="text-slate-400">: [</span>
|
|
179
|
+
<span class="text-green-300">'card'</span><span class="text-slate-400">,</span> <span class="text-green-300">'sepa_debit'</span><span class="text-slate-400">,</span> <span class="text-green-300">'ideal'</span>
|
|
180
|
+
<span class="text-slate-400">],</span>
|
|
181
|
+
confirm<span class="text-slate-400">:</span> <span class="text-orange-300">true</span>
|
|
182
|
+
<span class="text-slate-400">});</span>
|
|
183
|
+
|
|
184
|
+
<span class="text-slate-500">// Webhook: payment.succeeded</span>
|
|
185
|
+
<span class="text-slate-500">// → funds in your account T+1</span></code></pre>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<!-- Feature pills -->
|
|
189
|
+
<div class="flex flex-wrap gap-2 mt-6">
|
|
190
|
+
<span class="mono text-xs px-3 py-1.5 rounded-full bg-white/5 border border-white/8 text-slate-400">Idempotency keys</span>
|
|
191
|
+
<span class="mono text-xs px-3 py-1.5 rounded-full bg-white/5 border border-white/8 text-slate-400">Webhook signatures</span>
|
|
192
|
+
<span class="mono text-xs px-3 py-1.5 rounded-full bg-white/5 border border-white/8 text-slate-400">Versioned API</span>
|
|
193
|
+
<span class="mono text-xs px-3 py-1.5 rounded-full bg-white/5 border border-white/8 text-slate-400">Test mode</span>
|
|
194
|
+
<span class="mono text-xs px-3 py-1.5 rounded-full bg-white/5 border border-white/8 text-slate-400">OpenAPI spec</span>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
<!-- Right: feature list -->
|
|
199
|
+
<div class="space-y-6">
|
|
200
|
+
<div class="card-gradient border border-white/8 rounded-2xl p-6">
|
|
201
|
+
<div class="flex gap-4">
|
|
202
|
+
<div class="w-10 h-10 rounded-xl bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0">
|
|
203
|
+
<svg class="w-5 h-5 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z"/></svg>
|
|
204
|
+
</div>
|
|
205
|
+
<div>
|
|
206
|
+
<h3 class="font-semibold text-white mb-1">Unified Payment Acceptance</h3>
|
|
207
|
+
<p class="text-sm text-slate-400 leading-relaxed">Cards, ACH, SEPA, PIX, UPI, and 80+ local methods. Dynamic currency conversion and intelligent routing to maximize approval rates by country.</p>
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
<div class="card-gradient border border-white/8 rounded-2xl p-6">
|
|
213
|
+
<div class="flex gap-4">
|
|
214
|
+
<div class="w-10 h-10 rounded-xl bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0">
|
|
215
|
+
<svg class="w-5 h-5 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/></svg>
|
|
216
|
+
</div>
|
|
217
|
+
<div>
|
|
218
|
+
<h3 class="font-semibold text-white mb-1">Subscription & Usage Billing</h3>
|
|
219
|
+
<p class="text-sm text-slate-400 leading-relaxed">Flat-rate, metered, and seat-based pricing models. Automatic proration, trial periods, dunning retries, and PDF invoices. Revenue recognition compliant.</p>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
<div class="card-gradient border border-white/8 rounded-2xl p-6">
|
|
225
|
+
<div class="flex gap-4">
|
|
226
|
+
<div class="w-10 h-10 rounded-xl bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0">
|
|
227
|
+
<svg class="w-5 h-5 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"/></svg>
|
|
228
|
+
</div>
|
|
229
|
+
<div>
|
|
230
|
+
<h3 class="font-semibold text-white mb-1">Marketplace Payouts</h3>
|
|
231
|
+
<p class="text-sm text-slate-400 leading-relaxed">Split payments between your platform and sellers instantly. KYC and seller onboarding via API. Pay out in 47 countries, in local currency, on any schedule.</p>
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
<div class="card-gradient border border-white/8 rounded-2xl p-6">
|
|
237
|
+
<div class="flex gap-4">
|
|
238
|
+
<div class="w-10 h-10 rounded-xl bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0">
|
|
239
|
+
<svg class="w-5 h-5 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg>
|
|
240
|
+
</div>
|
|
241
|
+
<div>
|
|
242
|
+
<h3 class="font-semibold text-white mb-1">Fraud Detection & Risk</h3>
|
|
243
|
+
<p class="text-sm text-slate-400 leading-relaxed">ML fraud scoring on every charge, trained on billions of transactions. Custom rule sets, velocity limits, and 3DS2 authentication built in at no extra cost.</p>
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
</div>
|
|
250
|
+
</section>
|
|
251
|
+
|
|
252
|
+
<!-- Flow diagram section -->
|
|
253
|
+
<section class="py-28 bg-gradient-to-b from-transparent via-indigo-950/10 to-transparent">
|
|
254
|
+
<div class="max-w-5xl mx-auto px-6 text-center">
|
|
255
|
+
<span class="text-indigo-400 text-sm font-semibold uppercase tracking-widest mono">How it works</span>
|
|
256
|
+
<h2 class="text-4xl font-bold text-white mt-3 mb-4">One integration. Every use case.</h2>
|
|
257
|
+
<p class="text-slate-400 max-w-xl mx-auto mb-16">Tender sits between your product and the global financial system. You write clean API calls; we handle acquiring banks, card networks, local regulators, and risk engines.</p>
|
|
258
|
+
|
|
259
|
+
<!-- Flow diagram -->
|
|
260
|
+
<div class="grid md:grid-cols-3 gap-0 relative">
|
|
261
|
+
<!-- Connecting lines -->
|
|
262
|
+
<div class="hidden md:block absolute top-8 left-1/3 right-1/3 h-0.5 bg-gradient-to-r from-indigo-500/40 via-purple-500/40 to-indigo-500/40"></div>
|
|
263
|
+
|
|
264
|
+
<div class="relative flex flex-col items-center">
|
|
265
|
+
<div class="w-16 h-16 bg-gradient-to-br from-indigo-500 to-indigo-700 rounded-2xl flex items-center justify-center mb-4 shadow-xl shadow-indigo-500/20">
|
|
266
|
+
<svg class="w-7 h-7 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"/></svg>
|
|
267
|
+
</div>
|
|
268
|
+
<h3 class="font-semibold text-white mb-2">Your Application</h3>
|
|
269
|
+
<p class="text-sm text-slate-400">Call the Tender API from your backend. One integration covers every payment scenario.</p>
|
|
270
|
+
</div>
|
|
271
|
+
|
|
272
|
+
<div class="relative flex flex-col items-center">
|
|
273
|
+
<div class="w-16 h-16 bg-gradient-to-br from-purple-500 to-indigo-600 rounded-2xl flex items-center justify-center mb-4 shadow-xl shadow-purple-500/20">
|
|
274
|
+
<svg class="w-7 h-7 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"/></svg>
|
|
275
|
+
</div>
|
|
276
|
+
<h3 class="font-semibold text-white mb-2">Tender Platform</h3>
|
|
277
|
+
<p class="text-sm text-slate-400">Fraud scoring, FX conversion, compliance checks, and smart routing — all automatic.</p>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<div class="relative flex flex-col items-center">
|
|
281
|
+
<div class="w-16 h-16 bg-gradient-to-br from-indigo-600 to-purple-700 rounded-2xl flex items-center justify-center mb-4 shadow-xl shadow-indigo-500/20">
|
|
282
|
+
<svg class="w-7 h-7 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064"/></svg>
|
|
283
|
+
</div>
|
|
284
|
+
<h3 class="font-semibold text-white mb-2">Global Financial Rails</h3>
|
|
285
|
+
<p class="text-sm text-slate-400">Visa, Mastercard, SWIFT, ACH, SEPA, and 80+ local networks — we maintain every connection.</p>
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
</section>
|
|
290
|
+
|
|
291
|
+
<!-- Dashboard / Finance section -->
|
|
292
|
+
<section class="py-28">
|
|
293
|
+
<div class="max-w-6xl mx-auto px-6">
|
|
294
|
+
<div class="grid lg:grid-cols-2 gap-16 items-center">
|
|
295
|
+
|
|
296
|
+
<!-- Dashboard mockup -->
|
|
297
|
+
<div class="bg-slate-900 rounded-2xl border border-white/8 overflow-hidden shadow-2xl">
|
|
298
|
+
<!-- Top bar -->
|
|
299
|
+
<div class="bg-slate-800/60 border-b border-white/5 px-6 py-4 flex items-center justify-between">
|
|
300
|
+
<div class="flex items-center gap-2">
|
|
301
|
+
<div class="w-2 h-2 rounded-full bg-green-400"></div>
|
|
302
|
+
<span class="text-sm font-medium text-white">Finance Dashboard</span>
|
|
303
|
+
</div>
|
|
304
|
+
<div class="flex gap-2">
|
|
305
|
+
<span class="mono text-xs px-2 py-1 bg-indigo-500/20 text-indigo-300 border border-indigo-500/20 rounded">Live</span>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
<!-- Metrics row -->
|
|
309
|
+
<div class="grid grid-cols-3 gap-0 border-b border-white/5">
|
|
310
|
+
<div class="p-5 border-r border-white/5">
|
|
311
|
+
<p class="text-xs text-slate-500 mb-1">Monthly Revenue</p>
|
|
312
|
+
<p class="text-2xl font-bold text-white">$1.24M</p>
|
|
313
|
+
<p class="text-xs text-green-400 mt-1">↑ 18.2% vs last month</p>
|
|
314
|
+
</div>
|
|
315
|
+
<div class="p-5 border-r border-white/5">
|
|
316
|
+
<p class="text-xs text-slate-500 mb-1">Active Subs</p>
|
|
317
|
+
<p class="text-2xl font-bold text-white">8,441</p>
|
|
318
|
+
<p class="text-xs text-green-400 mt-1">↑ 312 new this week</p>
|
|
319
|
+
</div>
|
|
320
|
+
<div class="p-5">
|
|
321
|
+
<p class="text-xs text-slate-500 mb-1">Dispute Rate</p>
|
|
322
|
+
<p class="text-2xl font-bold text-white">0.03%</p>
|
|
323
|
+
<p class="text-xs text-green-400 mt-1">Below threshold</p>
|
|
324
|
+
</div>
|
|
325
|
+
</div>
|
|
326
|
+
<!-- Chart area -->
|
|
327
|
+
<div class="p-6">
|
|
328
|
+
<div class="flex items-end gap-1.5 h-32 mb-3">
|
|
329
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:38%"></div>
|
|
330
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:52%"></div>
|
|
331
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:45%"></div>
|
|
332
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:68%"></div>
|
|
333
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:72%"></div>
|
|
334
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:60%"></div>
|
|
335
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:85%"></div>
|
|
336
|
+
<div class="flex-1 rounded-t bg-indigo-500/15 hover:bg-indigo-500/30 transition-colors" style="height:78%"></div>
|
|
337
|
+
<div class="flex-1 rounded-t bg-indigo-500/20 hover:bg-indigo-500/30 transition-colors" style="height:91%"></div>
|
|
338
|
+
<div class="flex-1 rounded-t bg-indigo-500/20 hover:bg-indigo-500/30 transition-colors" style="height:88%"></div>
|
|
339
|
+
<div class="flex-1 rounded-t bg-indigo-500/25 hover:bg-indigo-500/35 transition-colors" style="height:95%"></div>
|
|
340
|
+
<div class="flex-1 rounded-t bg-gradient-to-t from-indigo-600 to-indigo-400 shadow-lg shadow-indigo-500/20" style="height:100%"></div>
|
|
341
|
+
</div>
|
|
342
|
+
<div class="flex justify-between mono text-xs text-slate-600">
|
|
343
|
+
<span>Jan</span><span>Feb</span><span>Mar</span><span>Apr</span><span>May</span><span>Jun</span>
|
|
344
|
+
</div>
|
|
345
|
+
</div>
|
|
346
|
+
<!-- Recent transactions -->
|
|
347
|
+
<div class="border-t border-white/5 p-4">
|
|
348
|
+
<p class="text-xs text-slate-500 mb-3 font-medium uppercase tracking-wide">Recent payouts</p>
|
|
349
|
+
<div class="space-y-2">
|
|
350
|
+
<div class="flex justify-between items-center text-sm">
|
|
351
|
+
<div class="flex items-center gap-2"><div class="w-1.5 h-1.5 bg-green-400 rounded-full"></div><span class="text-slate-300">Acme Corp</span></div>
|
|
352
|
+
<span class="mono text-white">$12,400.00</span>
|
|
353
|
+
</div>
|
|
354
|
+
<div class="flex justify-between items-center text-sm">
|
|
355
|
+
<div class="flex items-center gap-2"><div class="w-1.5 h-1.5 bg-green-400 rounded-full"></div><span class="text-slate-300">Globex Ltd</span></div>
|
|
356
|
+
<span class="mono text-white">$8,220.00</span>
|
|
357
|
+
</div>
|
|
358
|
+
<div class="flex justify-between items-center text-sm">
|
|
359
|
+
<div class="flex items-center gap-2"><div class="w-1.5 h-1.5 bg-yellow-400 rounded-full"></div><span class="text-slate-300">Initech GmbH</span></div>
|
|
360
|
+
<span class="mono text-slate-400">Pending</span>
|
|
361
|
+
</div>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
</div>
|
|
365
|
+
|
|
366
|
+
<!-- Copy -->
|
|
367
|
+
<div>
|
|
368
|
+
<span class="text-indigo-400 text-sm font-semibold uppercase tracking-widest mono">For Finance & Ops</span>
|
|
369
|
+
<h2 class="text-4xl font-bold text-white mt-3 mb-5">Visibility without the spreadsheets.</h2>
|
|
370
|
+
<p class="text-slate-400 leading-relaxed mb-8">Engineers ship the integration. Finance teams get a dashboard that actually works. Real-time revenue, dispute management, payout scheduling, and tax summaries — no ETL pipelines required.</p>
|
|
371
|
+
|
|
372
|
+
<div class="space-y-4">
|
|
373
|
+
<div class="flex gap-4">
|
|
374
|
+
<div class="w-8 h-8 rounded-lg bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0 mt-0.5">
|
|
375
|
+
<svg class="w-4 h-4 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg>
|
|
376
|
+
</div>
|
|
377
|
+
<div>
|
|
378
|
+
<h4 class="font-semibold text-white text-sm">Live MRR, ARR, and churn tracking</h4>
|
|
379
|
+
<p class="text-sm text-slate-400 mt-0.5">Updated in real time, segmented by plan, geography, or cohort.</p>
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
<div class="flex gap-4">
|
|
383
|
+
<div class="w-8 h-8 rounded-lg bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0 mt-0.5">
|
|
384
|
+
<svg class="w-4 h-4 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"/></svg>
|
|
385
|
+
</div>
|
|
386
|
+
<div>
|
|
387
|
+
<h4 class="font-semibold text-white text-sm">Automated dispute workflows</h4>
|
|
388
|
+
<p class="text-sm text-slate-400 mt-0.5">Evidence submission, tracking, and win-rate analytics built in.</p>
|
|
389
|
+
</div>
|
|
390
|
+
</div>
|
|
391
|
+
<div class="flex gap-4">
|
|
392
|
+
<div class="w-8 h-8 rounded-lg bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0 mt-0.5">
|
|
393
|
+
<svg class="w-4 h-4 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
|
|
394
|
+
</div>
|
|
395
|
+
<div>
|
|
396
|
+
<h4 class="font-semibold text-white text-sm">Tax calculation and remittance</h4>
|
|
397
|
+
<p class="text-sm text-slate-400 mt-0.5">US sales tax and EU VAT handled automatically. Reports by jurisdiction.</p>
|
|
398
|
+
</div>
|
|
399
|
+
</div>
|
|
400
|
+
<div class="flex gap-4">
|
|
401
|
+
<div class="w-8 h-8 rounded-lg bg-indigo-500/15 border border-indigo-500/20 flex items-center justify-center shrink-0 mt-0.5">
|
|
402
|
+
<svg class="w-4 h-4 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"/></svg>
|
|
403
|
+
</div>
|
|
404
|
+
<div>
|
|
405
|
+
<h4 class="font-semibold text-white text-sm">ERP and accounting exports</h4>
|
|
406
|
+
<p class="text-sm text-slate-400 mt-0.5">Syncs with QuickBooks, NetSuite, and Xero. CSV export anytime.</p>
|
|
407
|
+
</div>
|
|
408
|
+
</div>
|
|
409
|
+
</div>
|
|
410
|
+
</div>
|
|
411
|
+
</div>
|
|
412
|
+
</div>
|
|
413
|
+
</section>
|
|
414
|
+
|
|
415
|
+
<!-- Trust & compliance -->
|
|
416
|
+
<section class="py-24 border-t border-white/5">
|
|
417
|
+
<div class="max-w-6xl mx-auto px-6">
|
|
418
|
+
<div class="text-center mb-16">
|
|
419
|
+
<span class="text-indigo-400 text-sm font-semibold uppercase tracking-widest mono">Security & Compliance</span>
|
|
420
|
+
<h2 class="text-4xl font-bold text-white mt-3 mb-4">We handle the regulatory weight.</h2>
|
|
421
|
+
<p class="text-slate-400 max-w-xl mx-auto">PCI, GDPR, AML, KYC — Tender carries the compliance burden so you can focus on your product, not financial regulation.</p>
|
|
422
|
+
</div>
|
|
423
|
+
|
|
424
|
+
<div class="grid md:grid-cols-3 gap-6">
|
|
425
|
+
<div class="bg-gradient-to-br from-indigo-900/20 to-transparent border border-indigo-500/15 rounded-2xl p-8 text-center">
|
|
426
|
+
<div class="text-4xl font-black text-indigo-300 mono mb-2">PCI</div>
|
|
427
|
+
<div class="text-sm font-semibold text-white mb-2">DSS Level 1</div>
|
|
428
|
+
<p class="text-xs text-slate-400">Highest certification tier. Cardholder data never touches your servers.</p>
|
|
429
|
+
</div>
|
|
430
|
+
<div class="bg-gradient-to-br from-indigo-900/20 to-transparent border border-indigo-500/15 rounded-2xl p-8 text-center">
|
|
431
|
+
<div class="text-4xl font-black text-indigo-300 mono mb-2">SOC 2</div>
|
|
432
|
+
<div class="text-sm font-semibold text-white mb-2">Type II Certified</div>
|
|
433
|
+
<p class="text-xs text-slate-400">Annual audits covering security, availability, and confidentiality controls.</p>
|
|
434
|
+
</div>
|
|
435
|
+
<div class="bg-gradient-to-br from-indigo-900/20 to-transparent border border-indigo-500/15 rounded-2xl p-8 text-center">
|
|
436
|
+
<div class="text-4xl font-black text-indigo-300 mono mb-2">ISO</div>
|
|
437
|
+
<div class="text-sm font-semibold text-white mb-2">27001 Certified</div>
|
|
438
|
+
<p class="text-xs text-slate-400">Information security management certified. Data processor DPAs available.</p>
|
|
439
|
+
</div>
|
|
440
|
+
</div>
|
|
441
|
+
</div>
|
|
442
|
+
</section>
|
|
443
|
+
|
|
444
|
+
<!-- Testimonial / social proof -->
|
|
445
|
+
<section class="py-24">
|
|
446
|
+
<div class="max-w-6xl mx-auto px-6">
|
|
447
|
+
<div class="grid md:grid-cols-3 gap-6">
|
|
448
|
+
<div class="bg-slate-900 border border-white/8 rounded-2xl p-6">
|
|
449
|
+
<div class="flex gap-1 mb-4">
|
|
450
|
+
<span class="text-indigo-400">★★★★★</span>
|
|
451
|
+
</div>
|
|
452
|
+
<p class="text-slate-300 text-sm leading-relaxed mb-6">"We replaced three payment vendors with Tender and cut our integration surface by 80%. The API is the cleanest I've worked with in 10 years of building fintech."</p>
|
|
453
|
+
<div class="flex items-center gap-3">
|
|
454
|
+
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white text-sm font-bold">AK</div>
|
|
455
|
+
<div>
|
|
456
|
+
<p class="text-sm font-medium text-white">Arjun Kapoor</p>
|
|
457
|
+
<p class="text-xs text-slate-500">CTO, Lineage Finance</p>
|
|
458
|
+
</div>
|
|
459
|
+
</div>
|
|
460
|
+
</div>
|
|
461
|
+
|
|
462
|
+
<div class="bg-slate-900 border border-white/8 rounded-2xl p-6">
|
|
463
|
+
<div class="flex gap-1 mb-4">
|
|
464
|
+
<span class="text-indigo-400">★★★★★</span>
|
|
465
|
+
</div>
|
|
466
|
+
<p class="text-slate-300 text-sm leading-relaxed mb-6">"Our finance team went from pulling reports from 5 systems to one dashboard. Dispute response time dropped from 3 days to same-day. It's been transformative."</p>
|
|
467
|
+
<div class="flex items-center gap-3">
|
|
468
|
+
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-purple-500 to-pink-600 flex items-center justify-center text-white text-sm font-bold">SM</div>
|
|
469
|
+
<div>
|
|
470
|
+
<p class="text-sm font-medium text-white">Sarah Mitchell</p>
|
|
471
|
+
<p class="text-xs text-slate-500">VP Finance, Circlemore</p>
|
|
472
|
+
</div>
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
|
|
476
|
+
<div class="bg-slate-900 border border-white/8 rounded-2xl p-6">
|
|
477
|
+
<div class="flex gap-1 mb-4">
|
|
478
|
+
<span class="text-indigo-400">★★★★★</span>
|
|
479
|
+
</div>
|
|
480
|
+
<p class="text-slate-300 text-sm leading-relaxed mb-6">"We launched our marketplace payout flow in 6 weeks. KYC, split payments, instant payouts to contractors in 12 countries — all through one API. Remarkable."</p>
|
|
481
|
+
<div class="flex items-center gap-3">
|
|
482
|
+
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-green-500 to-teal-600 flex items-center justify-center text-white text-sm font-bold">LR</div>
|
|
483
|
+
<div>
|
|
484
|
+
<p class="text-sm font-medium text-white">Luis Reyes</p>
|
|
485
|
+
<p class="text-xs text-slate-500">Engineering Lead, Meridian</p>
|
|
486
|
+
</div>
|
|
487
|
+
</div>
|
|
488
|
+
</div>
|
|
489
|
+
</div>
|
|
490
|
+
</div>
|
|
491
|
+
</section>
|
|
492
|
+
|
|
493
|
+
<!-- Final CTA -->
|
|
494
|
+
<section class="py-32 relative overflow-hidden">
|
|
495
|
+
<div class="absolute inset-0 bg-gradient-to-b from-transparent via-indigo-950/20 to-transparent pointer-events-none"></div>
|
|
496
|
+
<div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-indigo-600/8 rounded-full blur-3xl pointer-events-none"></div>
|
|
497
|
+
<div class="max-w-4xl mx-auto px-6 text-center relative">
|
|
498
|
+
<h2 class="text-5xl md:text-6xl font-extrabold text-white mb-6 tracking-tight">Ready to ship payments?</h2>
|
|
499
|
+
<p class="text-xl text-slate-400 mb-10 font-light max-w-xl mx-auto">API keys in 30 seconds. Full test environment. No sales call required. Scale to millions when you're ready.</p>
|
|
500
|
+
<div class="flex flex-wrap justify-center gap-4">
|
|
501
|
+
<a href="#" class="bg-indigo-600 hover:bg-indigo-500 text-white font-bold px-10 py-5 rounded-xl text-base transition-all hover:shadow-2xl hover:shadow-indigo-500/25">
|
|
502
|
+
Start integrating →
|
|
503
|
+
</a>
|
|
504
|
+
<a href="#" class="border border-white/15 hover:border-white/25 bg-white/5 hover:bg-white/8 text-white font-medium px-10 py-5 rounded-xl text-base transition-all">
|
|
505
|
+
View the docs
|
|
506
|
+
</a>
|
|
507
|
+
</div>
|
|
508
|
+
<p class="mono text-xs text-slate-600 mt-8">npm install @tender/sdk</p>
|
|
509
|
+
</div>
|
|
510
|
+
</section>
|
|
511
|
+
|
|
512
|
+
<!-- Footer -->
|
|
513
|
+
<footer class="border-t border-white/5 py-12">
|
|
514
|
+
<div class="max-w-6xl mx-auto px-6">
|
|
515
|
+
<div class="grid md:grid-cols-5 gap-10 mb-10">
|
|
516
|
+
<div class="md:col-span-2">
|
|
517
|
+
<div class="flex items-center gap-2 mb-4">
|
|
518
|
+
<div class="w-7 h-7 rounded-lg bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center">
|
|
519
|
+
<span class="text-white text-xs font-bold">T</span>
|
|
520
|
+
</div>
|
|
521
|
+
<span class="font-bold text-white">Tender</span>
|
|
522
|
+
</div>
|
|
523
|
+
<p class="text-sm text-slate-500 max-w-xs">Payments infrastructure for internet businesses. Global scale, developer-first, compliance included.</p>
|
|
524
|
+
</div>
|
|
525
|
+
<div>
|
|
526
|
+
<p class="text-xs text-slate-600 font-semibold uppercase tracking-widest mb-4">Platform</p>
|
|
527
|
+
<ul class="space-y-2 text-sm text-slate-400">
|
|
528
|
+
<li><a href="#" class="hover:text-white transition-colors">Payments</a></li>
|
|
529
|
+
<li><a href="#" class="hover:text-white transition-colors">Billing</a></li>
|
|
530
|
+
<li><a href="#" class="hover:text-white transition-colors">Payouts</a></li>
|
|
531
|
+
<li><a href="#" class="hover:text-white transition-colors">Fraud</a></li>
|
|
532
|
+
</ul>
|
|
533
|
+
</div>
|
|
534
|
+
<div>
|
|
535
|
+
<p class="text-xs text-slate-600 font-semibold uppercase tracking-widest mb-4">Developers</p>
|
|
536
|
+
<ul class="space-y-2 text-sm text-slate-400">
|
|
537
|
+
<li><a href="#" class="hover:text-white transition-colors">Documentation</a></li>
|
|
538
|
+
<li><a href="#" class="hover:text-white transition-colors">API Reference</a></li>
|
|
539
|
+
<li><a href="#" class="hover:text-white transition-colors">SDKs</a></li>
|
|
540
|
+
<li><a href="#" class="hover:text-white transition-colors">Status</a></li>
|
|
541
|
+
</ul>
|
|
542
|
+
</div>
|
|
543
|
+
<div>
|
|
544
|
+
<p class="text-xs text-slate-600 font-semibold uppercase tracking-widest mb-4">Company</p>
|
|
545
|
+
<ul class="space-y-2 text-sm text-slate-400">
|
|
546
|
+
<li><a href="#" class="hover:text-white transition-colors">About</a></li>
|
|
547
|
+
<li><a href="#" class="hover:text-white transition-colors">Blog</a></li>
|
|
548
|
+
<li><a href="#" class="hover:text-white transition-colors">Careers</a></li>
|
|
549
|
+
<li><a href="#" class="hover:text-white transition-colors">Security</a></li>
|
|
550
|
+
</ul>
|
|
551
|
+
</div>
|
|
552
|
+
</div>
|
|
553
|
+
<div class="border-t border-white/5 pt-6 flex flex-col md:flex-row justify-between gap-3 text-xs text-slate-600">
|
|
554
|
+
<span>© 2025 Tender Payments Inc. All rights reserved.</span>
|
|
555
|
+
<div class="flex gap-6">
|
|
556
|
+
<a href="#" class="hover:text-slate-400">Privacy Policy</a>
|
|
557
|
+
<a href="#" class="hover:text-slate-400">Terms of Service</a>
|
|
558
|
+
<a href="#" class="hover:text-slate-400">Cookie Policy</a>
|
|
559
|
+
</div>
|
|
560
|
+
</div>
|
|
561
|
+
</div>
|
|
562
|
+
</footer>
|
|
563
|
+
|
|
564
|
+
</body>
|
|
565
|
+
</html>
|