@lukoweb/create-apitogo 0.1.87 → 0.1.88
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/dist/templates/default/js/apitogo.config.json +155 -36
- package/dist/templates/default/ts/apitogo.config.json +110 -32
- package/dist/templates/default/ts/landing/LandingPage.tsx +169 -14
- package/dist/templates/empty/js/apitogo.config.json +29 -29
- package/dist/templates/empty/ts/apitogo.config.json +29 -29
- package/package.json +1 -1
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
"title": "__APP_TITLE__",
|
|
4
4
|
"showTitleInHeader": false,
|
|
5
5
|
"logo": {
|
|
6
|
-
"src": {
|
|
6
|
+
"src": {
|
|
7
|
+
"light": "/logo-light.svg",
|
|
8
|
+
"dark": "/logo-dark.svg"
|
|
9
|
+
},
|
|
7
10
|
"alt": "API ToGo",
|
|
8
11
|
"width": "160px"
|
|
9
12
|
}
|
|
@@ -19,42 +22,42 @@
|
|
|
19
22
|
},
|
|
20
23
|
"theme": {
|
|
21
24
|
"fonts": {
|
|
22
|
-
"sans": "
|
|
25
|
+
"sans": "Inter",
|
|
23
26
|
"mono": "JetBrains Mono"
|
|
24
27
|
},
|
|
25
28
|
"light": {
|
|
26
|
-
"background": "#
|
|
27
|
-
"foreground": "#
|
|
28
|
-
"card": "#
|
|
29
|
-
"cardForeground": "#
|
|
30
|
-
"primary": "#
|
|
29
|
+
"background": "#ffffff",
|
|
30
|
+
"foreground": "#252b3b",
|
|
31
|
+
"card": "#ffffff",
|
|
32
|
+
"cardForeground": "#252b3b",
|
|
33
|
+
"primary": "#0d9488",
|
|
31
34
|
"primaryForeground": "#ffffff",
|
|
32
|
-
"secondary": "#
|
|
33
|
-
"secondaryForeground": "#
|
|
34
|
-
"muted": "#
|
|
35
|
-
"mutedForeground": "
|
|
36
|
-
"accent": "rgba(
|
|
37
|
-
"accentForeground": "#
|
|
38
|
-
"border": "#
|
|
39
|
-
"input": "#
|
|
40
|
-
"ring": "#
|
|
35
|
+
"secondary": "#f4f6fb",
|
|
36
|
+
"secondaryForeground": "#252b3b",
|
|
37
|
+
"muted": "#e9edf5",
|
|
38
|
+
"mutedForeground": "rgba(37, 43, 59, 0.55)",
|
|
39
|
+
"accent": "rgba(13, 148, 136, 0.1)",
|
|
40
|
+
"accentForeground": "#0d9488",
|
|
41
|
+
"border": "#d9deea",
|
|
42
|
+
"input": "#d9deea",
|
|
43
|
+
"ring": "#0d9488"
|
|
41
44
|
},
|
|
42
45
|
"dark": {
|
|
43
|
-
"background": "#
|
|
44
|
-
"foreground": "#
|
|
45
|
-
"card": "#
|
|
46
|
-
"cardForeground": "#
|
|
47
|
-
"primary": "#
|
|
46
|
+
"background": "#252b3b",
|
|
47
|
+
"foreground": "#e9edf5",
|
|
48
|
+
"card": "#2b3243",
|
|
49
|
+
"cardForeground": "#e9edf5",
|
|
50
|
+
"primary": "#0d9488",
|
|
48
51
|
"primaryForeground": "#ffffff",
|
|
49
|
-
"secondary": "#
|
|
50
|
-
"secondaryForeground": "#
|
|
51
|
-
"muted": "#
|
|
52
|
-
"mutedForeground": "
|
|
53
|
-
"accent": "rgba(
|
|
54
|
-
"accentForeground": "#
|
|
55
|
-
"border": "
|
|
56
|
-
"input": "#
|
|
57
|
-
"ring": "#
|
|
52
|
+
"secondary": "#1e2330",
|
|
53
|
+
"secondaryForeground": "#e9edf5",
|
|
54
|
+
"muted": "#1e2330",
|
|
55
|
+
"mutedForeground": "rgba(217, 222, 234, 0.58)",
|
|
56
|
+
"accent": "rgba(13, 148, 136, 0.12)",
|
|
57
|
+
"accentForeground": "#0d9488",
|
|
58
|
+
"border": "rgba(217, 222, 234, 0.18)",
|
|
59
|
+
"input": "#323a4f",
|
|
60
|
+
"ring": "#0d9488"
|
|
58
61
|
}
|
|
59
62
|
},
|
|
60
63
|
"modules": {
|
|
@@ -64,15 +67,112 @@
|
|
|
64
67
|
"landing": {
|
|
65
68
|
"enabled": true,
|
|
66
69
|
"path": "/",
|
|
67
|
-
"layout": "landing"
|
|
70
|
+
"layout": "landing",
|
|
71
|
+
"page": "./landing/LandingPage.tsx",
|
|
72
|
+
"content": {
|
|
73
|
+
"footer": {
|
|
74
|
+
"brand": {
|
|
75
|
+
"name": "SampleAPI",
|
|
76
|
+
"tagline": "A hosted sandbox API for prototypes, demos, and QA \u2014 realistic data, real auth, real limits."
|
|
77
|
+
},
|
|
78
|
+
"columns": [
|
|
79
|
+
{
|
|
80
|
+
"title": "Product",
|
|
81
|
+
"links": [
|
|
82
|
+
{
|
|
83
|
+
"label": "Overview",
|
|
84
|
+
"href": "/#features"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"label": "Pricing",
|
|
88
|
+
"href": "/pricing"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"label": "Documentation",
|
|
92
|
+
"href": "/introduction"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"title": "Account",
|
|
98
|
+
"links": [
|
|
99
|
+
{
|
|
100
|
+
"label": "Log in",
|
|
101
|
+
"href": "/signin"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "Get started",
|
|
105
|
+
"href": "/signup"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"label": "Dashboard",
|
|
109
|
+
"href": "/account/dashboard"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"title": "Company",
|
|
115
|
+
"links": [
|
|
116
|
+
{
|
|
117
|
+
"label": "Contact",
|
|
118
|
+
"href": "#"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"label": "Terms",
|
|
122
|
+
"href": "#"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"label": "Privacy",
|
|
126
|
+
"href": "#"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"copyright": "\u00a9 2026 Sample API"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
68
134
|
},
|
|
69
135
|
"userPanel": {
|
|
70
136
|
"enabled": true,
|
|
71
|
-
"dashboard": {
|
|
72
|
-
|
|
137
|
+
"dashboard": {
|
|
138
|
+
"enabled": true
|
|
139
|
+
},
|
|
140
|
+
"userManagement": {
|
|
141
|
+
"enabled": true
|
|
142
|
+
},
|
|
73
143
|
"plans": {
|
|
74
|
-
"enabled":
|
|
75
|
-
"page": "./user-panel/AccountPlansPage.tsx"
|
|
144
|
+
"enabled": true,
|
|
145
|
+
"page": "./user-panel/AccountPlansPage.tsx",
|
|
146
|
+
"items": [
|
|
147
|
+
{
|
|
148
|
+
"sku": "free",
|
|
149
|
+
"displayName": "Free",
|
|
150
|
+
"priceAmount": 0,
|
|
151
|
+
"billingPeriod": "month",
|
|
152
|
+
"limitsJson": "{\"rateLimit\":{\"calls\":10,\"renewalPeriodSeconds\":1},\"quota\":{\"calls\":1000,\"renewalPeriodDays\":30}}"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"sku": "developer",
|
|
156
|
+
"displayName": "Developer",
|
|
157
|
+
"priceAmount": 19,
|
|
158
|
+
"billingPeriod": "month",
|
|
159
|
+
"limitsJson": "{\"rateLimit\":{\"calls\":50,\"renewalPeriodSeconds\":1},\"quota\":{\"calls\":50000,\"renewalPeriodDays\":30}}"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"sku": "team",
|
|
163
|
+
"displayName": "Team",
|
|
164
|
+
"priceAmount": 79,
|
|
165
|
+
"billingPeriod": "month",
|
|
166
|
+
"limitsJson": "{\"rateLimit\":{\"calls\":200,\"renewalPeriodSeconds\":1},\"quota\":{\"calls\":500000,\"renewalPeriodDays\":30}}"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"sku": "enterprise",
|
|
170
|
+
"displayName": "Enterprise",
|
|
171
|
+
"priceAmount": -1,
|
|
172
|
+
"billingPeriod": "custom",
|
|
173
|
+
"limitsJson": "{\"quota\":{\"calls\":-1}}"
|
|
174
|
+
}
|
|
175
|
+
]
|
|
76
176
|
}
|
|
77
177
|
}
|
|
78
178
|
},
|
|
@@ -128,5 +228,24 @@
|
|
|
128
228
|
"input": "./apis/openapi.yaml",
|
|
129
229
|
"path": "api"
|
|
130
230
|
}
|
|
131
|
-
]
|
|
231
|
+
],
|
|
232
|
+
"header": {
|
|
233
|
+
"placements": {
|
|
234
|
+
"navigation": "center"
|
|
235
|
+
},
|
|
236
|
+
"navigation": [
|
|
237
|
+
{
|
|
238
|
+
"label": "Product",
|
|
239
|
+
"to": "/#features"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"label": "Pricing",
|
|
243
|
+
"to": "/pricing"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"label": "Docs",
|
|
247
|
+
"to": "/introduction"
|
|
248
|
+
}
|
|
249
|
+
]
|
|
250
|
+
}
|
|
132
251
|
}
|
|
@@ -19,44 +19,52 @@
|
|
|
19
19
|
},
|
|
20
20
|
"theme": {
|
|
21
21
|
"fonts": {
|
|
22
|
-
"sans": "
|
|
22
|
+
"sans": "Inter",
|
|
23
23
|
"mono": "JetBrains Mono"
|
|
24
24
|
},
|
|
25
25
|
"light": {
|
|
26
|
-
"background": "#
|
|
27
|
-
"foreground": "#
|
|
28
|
-
"card": "#
|
|
29
|
-
"cardForeground": "#
|
|
30
|
-
"primary": "#
|
|
26
|
+
"background": "#ffffff",
|
|
27
|
+
"foreground": "#252b3b",
|
|
28
|
+
"card": "#ffffff",
|
|
29
|
+
"cardForeground": "#252b3b",
|
|
30
|
+
"primary": "#0d9488",
|
|
31
31
|
"primaryForeground": "#ffffff",
|
|
32
|
-
"secondary": "#
|
|
33
|
-
"secondaryForeground": "#
|
|
34
|
-
"muted": "#
|
|
35
|
-
"mutedForeground": "
|
|
36
|
-
"accent": "rgba(
|
|
37
|
-
"accentForeground": "#
|
|
38
|
-
"border": "#
|
|
39
|
-
"input": "#
|
|
40
|
-
"ring": "#
|
|
32
|
+
"secondary": "#f4f6fb",
|
|
33
|
+
"secondaryForeground": "#252b3b",
|
|
34
|
+
"muted": "#e9edf5",
|
|
35
|
+
"mutedForeground": "rgba(37, 43, 59, 0.55)",
|
|
36
|
+
"accent": "rgba(13, 148, 136, 0.1)",
|
|
37
|
+
"accentForeground": "#0d9488",
|
|
38
|
+
"border": "#d9deea",
|
|
39
|
+
"input": "#d9deea",
|
|
40
|
+
"ring": "#0d9488"
|
|
41
41
|
},
|
|
42
42
|
"dark": {
|
|
43
|
-
"background": "#
|
|
44
|
-
"foreground": "#
|
|
45
|
-
"card": "#
|
|
46
|
-
"cardForeground": "#
|
|
47
|
-
"primary": "#
|
|
43
|
+
"background": "#252b3b",
|
|
44
|
+
"foreground": "#e9edf5",
|
|
45
|
+
"card": "#2b3243",
|
|
46
|
+
"cardForeground": "#e9edf5",
|
|
47
|
+
"primary": "#0d9488",
|
|
48
48
|
"primaryForeground": "#ffffff",
|
|
49
|
-
"secondary": "#
|
|
50
|
-
"secondaryForeground": "#
|
|
51
|
-
"muted": "#
|
|
52
|
-
"mutedForeground": "
|
|
53
|
-
"accent": "rgba(
|
|
54
|
-
"accentForeground": "#
|
|
55
|
-
"border": "
|
|
56
|
-
"input": "#
|
|
57
|
-
"ring": "#
|
|
49
|
+
"secondary": "#1e2330",
|
|
50
|
+
"secondaryForeground": "#e9edf5",
|
|
51
|
+
"muted": "#1e2330",
|
|
52
|
+
"mutedForeground": "rgba(217, 222, 234, 0.58)",
|
|
53
|
+
"accent": "rgba(13, 148, 136, 0.12)",
|
|
54
|
+
"accentForeground": "#0d9488",
|
|
55
|
+
"border": "rgba(217, 222, 234, 0.18)",
|
|
56
|
+
"input": "#323a4f",
|
|
57
|
+
"ring": "#0d9488"
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
|
+
"header": {
|
|
61
|
+
"placements": { "navigation": "center" },
|
|
62
|
+
"navigation": [
|
|
63
|
+
{ "label": "Product", "to": "/#features" },
|
|
64
|
+
{ "label": "Pricing", "to": "/pricing" },
|
|
65
|
+
{ "label": "Docs", "to": "/introduction" }
|
|
66
|
+
]
|
|
67
|
+
},
|
|
60
68
|
"modules": {
|
|
61
69
|
"docs": {
|
|
62
70
|
"files": "/pages/**/*.{md,mdx}"
|
|
@@ -65,15 +73,80 @@
|
|
|
65
73
|
"enabled": true,
|
|
66
74
|
"path": "/",
|
|
67
75
|
"layout": "landing",
|
|
68
|
-
"page": "./landing/LandingPage.tsx"
|
|
76
|
+
"page": "./landing/LandingPage.tsx",
|
|
77
|
+
"content": {
|
|
78
|
+
"footer": {
|
|
79
|
+
"brand": {
|
|
80
|
+
"name": "SampleAPI",
|
|
81
|
+
"tagline": "A hosted sandbox API for prototypes, demos, and QA — realistic data, real auth, real limits."
|
|
82
|
+
},
|
|
83
|
+
"columns": [
|
|
84
|
+
{
|
|
85
|
+
"title": "Product",
|
|
86
|
+
"links": [
|
|
87
|
+
{ "label": "Overview", "href": "/#features" },
|
|
88
|
+
{ "label": "Pricing", "href": "/pricing" },
|
|
89
|
+
{ "label": "Documentation", "href": "/introduction" }
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"title": "Account",
|
|
94
|
+
"links": [
|
|
95
|
+
{ "label": "Log in", "href": "/signin" },
|
|
96
|
+
{ "label": "Get started", "href": "/signup" },
|
|
97
|
+
{ "label": "Dashboard", "href": "/account/dashboard" }
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"title": "Company",
|
|
102
|
+
"links": [
|
|
103
|
+
{ "label": "Contact", "href": "#" },
|
|
104
|
+
{ "label": "Terms", "href": "#" },
|
|
105
|
+
{ "label": "Privacy", "href": "#" }
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"copyright": "© 2026 Sample API"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
69
112
|
},
|
|
70
113
|
"userPanel": {
|
|
71
114
|
"enabled": true,
|
|
72
115
|
"dashboard": { "enabled": true },
|
|
73
116
|
"userManagement": { "enabled": true },
|
|
74
117
|
"plans": {
|
|
75
|
-
"enabled":
|
|
76
|
-
"page": "./user-panel/AccountPlansPage.tsx"
|
|
118
|
+
"enabled": true,
|
|
119
|
+
"page": "./user-panel/AccountPlansPage.tsx",
|
|
120
|
+
"items": [
|
|
121
|
+
{
|
|
122
|
+
"sku": "free",
|
|
123
|
+
"displayName": "Free",
|
|
124
|
+
"priceAmount": 0,
|
|
125
|
+
"billingPeriod": "month",
|
|
126
|
+
"limitsJson": "{\"rateLimit\":{\"calls\":10,\"renewalPeriodSeconds\":1},\"quota\":{\"calls\":1000,\"renewalPeriodDays\":30}}"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"sku": "developer",
|
|
130
|
+
"displayName": "Developer",
|
|
131
|
+
"priceAmount": 19,
|
|
132
|
+
"billingPeriod": "month",
|
|
133
|
+
"limitsJson": "{\"rateLimit\":{\"calls\":50,\"renewalPeriodSeconds\":1},\"quota\":{\"calls\":50000,\"renewalPeriodDays\":30}}"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"sku": "team",
|
|
137
|
+
"displayName": "Team",
|
|
138
|
+
"priceAmount": 79,
|
|
139
|
+
"billingPeriod": "month",
|
|
140
|
+
"limitsJson": "{\"rateLimit\":{\"calls\":200,\"renewalPeriodSeconds\":1},\"quota\":{\"calls\":500000,\"renewalPeriodDays\":30}}"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"sku": "enterprise",
|
|
144
|
+
"displayName": "Enterprise",
|
|
145
|
+
"priceAmount": -1,
|
|
146
|
+
"billingPeriod": "custom",
|
|
147
|
+
"limitsJson": "{\"quota\":{\"calls\":-1}}"
|
|
148
|
+
}
|
|
149
|
+
]
|
|
77
150
|
}
|
|
78
151
|
}
|
|
79
152
|
},
|
|
@@ -121,6 +194,11 @@
|
|
|
121
194
|
"type": "link",
|
|
122
195
|
"to": "/api",
|
|
123
196
|
"label": "API Reference"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"type": "link",
|
|
200
|
+
"to": "/pricing",
|
|
201
|
+
"label": "Pricing"
|
|
124
202
|
}
|
|
125
203
|
],
|
|
126
204
|
"apis": [
|
|
@@ -1,43 +1,198 @@
|
|
|
1
1
|
import {
|
|
2
|
+
ApiShowcaseSection,
|
|
2
3
|
FeaturesSection,
|
|
3
4
|
HeroSection,
|
|
4
5
|
LandingShell,
|
|
6
|
+
PlansPreviewSection,
|
|
7
|
+
PricingCtaSection,
|
|
8
|
+
StepsSection,
|
|
5
9
|
} from "@lukoweb/apitogo-module-landing";
|
|
6
10
|
|
|
7
11
|
export default function LandingPage() {
|
|
8
12
|
return (
|
|
9
13
|
<LandingShell
|
|
10
|
-
title="
|
|
11
|
-
description="
|
|
14
|
+
title="Test against a real API before you build one"
|
|
15
|
+
description="Sample API gives you realistic endpoints, authentication, rate limits, and webhooks — a fully working backend for prototypes, demos, and QA."
|
|
12
16
|
>
|
|
13
17
|
<HeroSection
|
|
14
18
|
hero={{
|
|
15
|
-
|
|
19
|
+
badge: "SANDBOX API",
|
|
20
|
+
title: "Test against a real API before you build one",
|
|
16
21
|
description:
|
|
17
|
-
"
|
|
22
|
+
"Sample API gives you realistic endpoints, authentication, rate limits, and webhooks — a fully working backend for prototypes, demos, and QA. No setup, no infrastructure.",
|
|
18
23
|
}}
|
|
19
|
-
primaryAction={{ label: "
|
|
20
|
-
secondaryAction={{ label: "
|
|
24
|
+
primaryAction={{ label: "Start for free", href: "/signup" }}
|
|
25
|
+
secondaryAction={{ label: "Read the docs", href: "/introduction" }}
|
|
26
|
+
codeExamples={[
|
|
27
|
+
{
|
|
28
|
+
filename: "Create a key",
|
|
29
|
+
language: "bash",
|
|
30
|
+
code: `$ curl -X POST https://api.sampleapi.dev/v1/keys
|
|
31
|
+
# sk_live_9f2c7a1e...`,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
filename: "Call an endpoint",
|
|
35
|
+
language: "bash",
|
|
36
|
+
code: `$ curl https://api.sampleapi.dev/v1/users/42 \\
|
|
37
|
+
-H "Authorization: Bearer sk_live_9f2c..."
|
|
38
|
+
# { "id": 42, "name": "Priya Shah", "plan": "pro" }`,
|
|
39
|
+
},
|
|
40
|
+
]}
|
|
21
41
|
/>
|
|
22
42
|
<FeaturesSection
|
|
43
|
+
section={{
|
|
44
|
+
label: "Everything a real API has",
|
|
45
|
+
title: "Built for testing, not just browsing",
|
|
46
|
+
description:
|
|
47
|
+
"Realistic data, live auth, rate limits, and webhooks — so you can ship with confidence.",
|
|
48
|
+
}}
|
|
23
49
|
features={[
|
|
24
50
|
{
|
|
25
|
-
title: "
|
|
26
|
-
description:
|
|
51
|
+
title: "Realistic mock data",
|
|
52
|
+
description:
|
|
53
|
+
"Users, orders, products, and posts with relationships and pagination, not lorem ipsum.",
|
|
54
|
+
icon: "boxes",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
title: "Real auth flow",
|
|
58
|
+
description:
|
|
59
|
+
"Every request checks a live API key, so you can test error handling and expiry.",
|
|
60
|
+
icon: "shield-check",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
title: "Rate limiting",
|
|
64
|
+
description:
|
|
65
|
+
"Per-plan request limits and 429 responses, so you can build and test backoff logic.",
|
|
66
|
+
icon: "gauge",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: "Webhooks",
|
|
70
|
+
description:
|
|
71
|
+
"Trigger test events and inspect delivered payloads and retries.",
|
|
72
|
+
icon: "webhook",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
title: "OpenAPI & docs",
|
|
76
|
+
description:
|
|
77
|
+
"A full OpenAPI spec and reference docs for every endpoint.",
|
|
27
78
|
icon: "book-open",
|
|
28
79
|
},
|
|
29
80
|
{
|
|
30
|
-
title: "
|
|
31
|
-
description:
|
|
32
|
-
|
|
81
|
+
title: "Usage analytics",
|
|
82
|
+
description:
|
|
83
|
+
"Track requests, latency, and errors per key from your dashboard.",
|
|
84
|
+
icon: "activity",
|
|
33
85
|
},
|
|
86
|
+
]}
|
|
87
|
+
/>
|
|
88
|
+
<StepsSection
|
|
89
|
+
steps={[
|
|
34
90
|
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
91
|
+
step: "01",
|
|
92
|
+
title: "Create an account",
|
|
93
|
+
description:
|
|
94
|
+
"Sign up and land straight in your dashboard — no approval queue.",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
step: "02",
|
|
98
|
+
title: "Generate a key",
|
|
99
|
+
description:
|
|
100
|
+
"Every key is scoped and rate-limited to your plan from the moment it's created.",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
step: "03",
|
|
104
|
+
title: "Call any endpoint",
|
|
105
|
+
description:
|
|
106
|
+
"Users, orders, products, posts, and webhooks — all documented, all live.",
|
|
38
107
|
},
|
|
39
108
|
]}
|
|
40
109
|
/>
|
|
110
|
+
<ApiShowcaseSection
|
|
111
|
+
apiShowcase={{
|
|
112
|
+
title: "Sample endpoints",
|
|
113
|
+
subtitle:
|
|
114
|
+
"A slice of what's available — see the full reference in the docs.",
|
|
115
|
+
browseAllHref: "/api",
|
|
116
|
+
browseAllLabel: "Browse all APIs",
|
|
117
|
+
layout: "list",
|
|
118
|
+
items: [
|
|
119
|
+
{
|
|
120
|
+
name: "List paginated users",
|
|
121
|
+
path: "/v1/users",
|
|
122
|
+
method: "GET",
|
|
123
|
+
summary: "List paginated users",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: "Create a mock order",
|
|
127
|
+
path: "/v1/orders",
|
|
128
|
+
method: "POST",
|
|
129
|
+
summary: "Create a mock order",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: "Fetch one product",
|
|
133
|
+
path: "/v1/products/{id}",
|
|
134
|
+
method: "GET",
|
|
135
|
+
summary: "Fetch one product",
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "List posts with comments",
|
|
139
|
+
path: "/v1/posts",
|
|
140
|
+
method: "GET",
|
|
141
|
+
summary: "List posts with comments",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: "Fire a test webhook event",
|
|
145
|
+
path: "/v1/webhooks/test",
|
|
146
|
+
method: "POST",
|
|
147
|
+
summary: "Fire a test webhook event",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "Delete a mock order",
|
|
151
|
+
path: "/v1/orders/{id}",
|
|
152
|
+
method: "DELETE",
|
|
153
|
+
summary: "Delete a mock order",
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
}}
|
|
157
|
+
/>
|
|
158
|
+
<PlansPreviewSection
|
|
159
|
+
plans={[
|
|
160
|
+
{
|
|
161
|
+
name: "Free",
|
|
162
|
+
price: "$0",
|
|
163
|
+
unit: "per month",
|
|
164
|
+
blurb: "1,000 requests/mo, community support.",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "Developer",
|
|
168
|
+
price: "$19",
|
|
169
|
+
unit: "per month",
|
|
170
|
+
blurb: "50,000 requests/mo, webhooks included.",
|
|
171
|
+
featured: true,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "Team",
|
|
175
|
+
price: "$79",
|
|
176
|
+
unit: "per month",
|
|
177
|
+
blurb: "500,000 requests/mo, 5 team seats.",
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
name: "Enterprise",
|
|
181
|
+
price: "Custom",
|
|
182
|
+
unit: "talk to us",
|
|
183
|
+
blurb: "Unlimited requests, SSO, SLA.",
|
|
184
|
+
},
|
|
185
|
+
]}
|
|
186
|
+
/>
|
|
187
|
+
<PricingCtaSection
|
|
188
|
+
variant="banner"
|
|
189
|
+
pricingCta={{
|
|
190
|
+
title: "Start testing in minutes",
|
|
191
|
+
description:
|
|
192
|
+
"Free tier includes 1,000 requests a month — no card required.",
|
|
193
|
+
primaryAction: { label: "Start for free", href: "/signup" },
|
|
194
|
+
}}
|
|
195
|
+
/>
|
|
41
196
|
</LandingShell>
|
|
42
197
|
);
|
|
43
198
|
}
|
|
@@ -19,42 +19,42 @@
|
|
|
19
19
|
},
|
|
20
20
|
"theme": {
|
|
21
21
|
"fonts": {
|
|
22
|
-
"sans": "
|
|
22
|
+
"sans": "Inter",
|
|
23
23
|
"mono": "JetBrains Mono"
|
|
24
24
|
},
|
|
25
25
|
"light": {
|
|
26
|
-
"background": "#
|
|
27
|
-
"foreground": "#
|
|
28
|
-
"card": "#
|
|
29
|
-
"cardForeground": "#
|
|
30
|
-
"primary": "#
|
|
26
|
+
"background": "#ffffff",
|
|
27
|
+
"foreground": "#252b3b",
|
|
28
|
+
"card": "#ffffff",
|
|
29
|
+
"cardForeground": "#252b3b",
|
|
30
|
+
"primary": "#0d9488",
|
|
31
31
|
"primaryForeground": "#ffffff",
|
|
32
|
-
"secondary": "#
|
|
33
|
-
"secondaryForeground": "#
|
|
34
|
-
"muted": "#
|
|
35
|
-
"mutedForeground": "
|
|
36
|
-
"accent": "rgba(
|
|
37
|
-
"accentForeground": "#
|
|
38
|
-
"border": "#
|
|
39
|
-
"input": "#
|
|
40
|
-
"ring": "#
|
|
32
|
+
"secondary": "#f4f6fb",
|
|
33
|
+
"secondaryForeground": "#252b3b",
|
|
34
|
+
"muted": "#e9edf5",
|
|
35
|
+
"mutedForeground": "rgba(37, 43, 59, 0.55)",
|
|
36
|
+
"accent": "rgba(13, 148, 136, 0.1)",
|
|
37
|
+
"accentForeground": "#0d9488",
|
|
38
|
+
"border": "#d9deea",
|
|
39
|
+
"input": "#d9deea",
|
|
40
|
+
"ring": "#0d9488"
|
|
41
41
|
},
|
|
42
42
|
"dark": {
|
|
43
|
-
"background": "#
|
|
44
|
-
"foreground": "#
|
|
45
|
-
"card": "#
|
|
46
|
-
"cardForeground": "#
|
|
47
|
-
"primary": "#
|
|
43
|
+
"background": "#252b3b",
|
|
44
|
+
"foreground": "#e9edf5",
|
|
45
|
+
"card": "#2b3243",
|
|
46
|
+
"cardForeground": "#e9edf5",
|
|
47
|
+
"primary": "#0d9488",
|
|
48
48
|
"primaryForeground": "#ffffff",
|
|
49
|
-
"secondary": "#
|
|
50
|
-
"secondaryForeground": "#
|
|
51
|
-
"muted": "#
|
|
52
|
-
"mutedForeground": "
|
|
53
|
-
"accent": "rgba(
|
|
54
|
-
"accentForeground": "#
|
|
55
|
-
"border": "
|
|
56
|
-
"input": "#
|
|
57
|
-
"ring": "#
|
|
49
|
+
"secondary": "#1e2330",
|
|
50
|
+
"secondaryForeground": "#e9edf5",
|
|
51
|
+
"muted": "#1e2330",
|
|
52
|
+
"mutedForeground": "rgba(217, 222, 234, 0.58)",
|
|
53
|
+
"accent": "rgba(13, 148, 136, 0.12)",
|
|
54
|
+
"accentForeground": "#0d9488",
|
|
55
|
+
"border": "rgba(217, 222, 234, 0.18)",
|
|
56
|
+
"input": "#323a4f",
|
|
57
|
+
"ring": "#0d9488"
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"modules": {
|
|
@@ -19,42 +19,42 @@
|
|
|
19
19
|
},
|
|
20
20
|
"theme": {
|
|
21
21
|
"fonts": {
|
|
22
|
-
"sans": "
|
|
22
|
+
"sans": "Inter",
|
|
23
23
|
"mono": "JetBrains Mono"
|
|
24
24
|
},
|
|
25
25
|
"light": {
|
|
26
|
-
"background": "#
|
|
27
|
-
"foreground": "#
|
|
28
|
-
"card": "#
|
|
29
|
-
"cardForeground": "#
|
|
30
|
-
"primary": "#
|
|
26
|
+
"background": "#ffffff",
|
|
27
|
+
"foreground": "#252b3b",
|
|
28
|
+
"card": "#ffffff",
|
|
29
|
+
"cardForeground": "#252b3b",
|
|
30
|
+
"primary": "#0d9488",
|
|
31
31
|
"primaryForeground": "#ffffff",
|
|
32
|
-
"secondary": "#
|
|
33
|
-
"secondaryForeground": "#
|
|
34
|
-
"muted": "#
|
|
35
|
-
"mutedForeground": "
|
|
36
|
-
"accent": "rgba(
|
|
37
|
-
"accentForeground": "#
|
|
38
|
-
"border": "#
|
|
39
|
-
"input": "#
|
|
40
|
-
"ring": "#
|
|
32
|
+
"secondary": "#f4f6fb",
|
|
33
|
+
"secondaryForeground": "#252b3b",
|
|
34
|
+
"muted": "#e9edf5",
|
|
35
|
+
"mutedForeground": "rgba(37, 43, 59, 0.55)",
|
|
36
|
+
"accent": "rgba(13, 148, 136, 0.1)",
|
|
37
|
+
"accentForeground": "#0d9488",
|
|
38
|
+
"border": "#d9deea",
|
|
39
|
+
"input": "#d9deea",
|
|
40
|
+
"ring": "#0d9488"
|
|
41
41
|
},
|
|
42
42
|
"dark": {
|
|
43
|
-
"background": "#
|
|
44
|
-
"foreground": "#
|
|
45
|
-
"card": "#
|
|
46
|
-
"cardForeground": "#
|
|
47
|
-
"primary": "#
|
|
43
|
+
"background": "#252b3b",
|
|
44
|
+
"foreground": "#e9edf5",
|
|
45
|
+
"card": "#2b3243",
|
|
46
|
+
"cardForeground": "#e9edf5",
|
|
47
|
+
"primary": "#0d9488",
|
|
48
48
|
"primaryForeground": "#ffffff",
|
|
49
|
-
"secondary": "#
|
|
50
|
-
"secondaryForeground": "#
|
|
51
|
-
"muted": "#
|
|
52
|
-
"mutedForeground": "
|
|
53
|
-
"accent": "rgba(
|
|
54
|
-
"accentForeground": "#
|
|
55
|
-
"border": "
|
|
56
|
-
"input": "#
|
|
57
|
-
"ring": "#
|
|
49
|
+
"secondary": "#1e2330",
|
|
50
|
+
"secondaryForeground": "#e9edf5",
|
|
51
|
+
"muted": "#1e2330",
|
|
52
|
+
"mutedForeground": "rgba(217, 222, 234, 0.58)",
|
|
53
|
+
"accent": "rgba(13, 148, 136, 0.12)",
|
|
54
|
+
"accentForeground": "#0d9488",
|
|
55
|
+
"border": "rgba(217, 222, 234, 0.18)",
|
|
56
|
+
"input": "#323a4f",
|
|
57
|
+
"ring": "#0d9488"
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"modules": {
|