create-ailk 0.3.0 → 0.5.0
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/component-catalog.json +11939 -0
- package/component-catalog.md +176 -64
- package/dist/cli.js +48 -10
- package/dist/derive-architecture.js +5 -2
- package/dist/lib/extract-module-bundle.d.ts +88 -1
- package/dist/lib/extract-module-bundle.js +375 -80
- package/dist/lib/fetch-guard.d.ts +28 -0
- package/dist/lib/fetch-guard.js +101 -0
- package/dist/lib/fetch-module.js +4 -0
- package/dist/lib/fetch-template.d.ts +20 -0
- package/dist/lib/fetch-template.js +133 -0
- package/dist/lib/module-license-gate.d.ts +8 -0
- package/dist/lib/module-license-gate.js +12 -4
- package/dist/module-architecture.d.ts +116 -7
- package/dist/module-architecture.js +465 -94
- package/dist/parse-args.d.ts +8 -1
- package/dist/parse-args.js +49 -2
- package/dist/programmatic.d.ts +36 -1
- package/dist/programmatic.js +216 -5
- package/dist/site-chrome.d.ts +80 -0
- package/dist/site-chrome.js +135 -0
- package/dist/surfaces.d.ts +21 -6
- package/dist/surfaces.js +140 -23
- package/dist/template-manifest.d.ts +144 -0
- package/dist/template-manifest.js +337 -0
- package/dist/template-names.d.ts +41 -0
- package/dist/template-names.js +45 -0
- package/package.json +10 -2
- package/site-templates/_base/ailk-template.json +6 -0
- package/site-templates/_base/content/en/Pricing/pricing.mdx +169 -0
- package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +79 -0
- package/site-templates/_base/content/en/TermsPage/terms.mdx +80 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +331 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +393 -0
- package/site-templates/marketing-site/ailk-template.json +11 -0
- package/site-templates/marketing-site/content/en/blog/05-this-vc-morning-routine-will-make-you-super-annoying.mdx +36 -0
- package/site-templates/marketing-site/provenance.json +4 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +288 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +285 -0
- package/site-templates/marketing-site-free/ailk-template.json +9 -0
- package/site-templates/marketing-site-free/provenance.json +4 -0
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +271 -0
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +324 -0
- package/site-templates/minimalism-site/ailk-template.json +21 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-1.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-2.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-3.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-4.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-5.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-6.svg +7 -0
- package/site-templates/minimalism-site/assets/hero-backdrop.svg +17 -0
- package/site-templates/minimalism-site/assets/logo-placeholder-1.svg +6 -0
- package/site-templates/minimalism-site/assets/logo-placeholder-2.svg +6 -0
- package/site-templates/minimalism-site/assets/logo-placeholder-3.svg +6 -0
- package/site-templates/minimalism-site/content/en/AboutPage/about.mdx +110 -0
- package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +68 -0
- package/site-templates/minimalism-site/content/en/FAQPage/faq.mdx +57 -0
- package/site-templates/minimalism-site/content/en/HomePage/home.mdx +214 -0
- package/site-templates/minimalism-site/content/en/LandingPage/referral.mdx +77 -0
- package/site-templates/minimalism-site/content/en/LandingPage/reports.mdx +73 -0
- package/site-templates/minimalism-site/content/en/ReportPage/annual-letter-2024.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ReportPage/field-notes-2023.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ReportPage/platform-shift-2025.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ReportPage/state-of-the-market-2026.mdx +52 -0
- package/site-templates/minimalism-site/content/en/Service/first-engagement.mdx +38 -0
- package/site-templates/minimalism-site/content/en/Service/second-engagement.mdx +38 -0
- package/site-templates/minimalism-site/content/en/Service/third-engagement.mdx +38 -0
- package/site-templates/minimalism-site/content/en/ServicesList/services.mdx +73 -0
- package/site-templates/minimalism-site/flows/referral.flow.json +71 -0
- package/site-templates/minimalism-site/provenance.json +4 -0
- package/site-templates/saas-product/TEMPLATE-MANIFEST.md +61 -0
- package/site-templates/saas-product/ailk-template.json +16 -0
- package/site-templates/saas-product/provenance.json +10 -0
- package/templates/.claude/skills/README.md +16 -25
- package/templates/.env.example +32 -7
- package/templates/.github/workflows/ci.yml +48 -0
- package/templates/README.md +3 -1
- package/templates/apps/api/CLAUDE.md +4 -1
- package/templates/apps/api/eslint.config.mjs +69 -0
- package/templates/apps/api/package.json +6 -2
- package/templates/apps/api/src/__tests__/module-exclusion.test.ts +6 -2
- package/templates/apps/api/src/__tests__/review-surface-registration.test.ts +167 -0
- package/templates/apps/api/src/__tests__/workspace-module-registration.test.ts +173 -0
- package/templates/apps/api/src/config/modules.ts +1 -1
- package/templates/apps/api/src/lib/__mocks__/prisma.ts +3 -0
- package/templates/apps/api/src/middleware/__tests__/default-tenant.test.ts +339 -0
- package/templates/apps/api/src/middleware/__tests__/rate-limit.test.ts +108 -0
- package/templates/apps/api/src/middleware/default-tenant.ts +136 -0
- package/templates/apps/api/src/routes/leads/__tests__/list.test.ts +171 -0
- package/templates/apps/api/src/routes/leads/list.ts +104 -0
- package/templates/apps/api/src/server.ts +122 -3
- package/templates/apps/api/src/services/__tests__/lead-promotion.test.ts +408 -0
- package/templates/apps/api/src/services/__tests__/leads-inbox.test.ts +329 -0
- package/templates/apps/api/src/services/default-tenant.ts +261 -0
- package/templates/apps/api/src/services/lead-promotion.ts +161 -0
- package/templates/apps/api/src/services/leads-inbox.ts +263 -0
- package/templates/apps/api/src/services/owner-workspaces.ts +132 -0
- package/templates/apps/mcp/CLAUDE.md +1 -1
- package/templates/apps/mcp/__tests__/parity.test.ts +2 -2
- package/templates/apps/mcp/__tests__/tools/{scaffold.test.ts → create_project.test.ts} +23 -23
- package/templates/apps/mcp/eslint.config.mjs +69 -0
- package/templates/apps/mcp/package.json +6 -2
- package/templates/apps/mcp/src/server.ts +2 -2
- package/templates/apps/mcp/src/tools/{scaffold.ts → create_project.ts} +3 -3
- package/templates/apps/mcp/src/tools/index.ts +2 -2
- package/templates/apps/web/.env.example +3 -3
- package/templates/apps/web/CLAUDE.md +2 -0
- package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +4 -6
- package/templates/apps/web/app/[locale]/(authed)/layout.tsx +1 -1
- package/templates/apps/web/app/[locale]/(authed)/leads/__tests__/page.test.tsx +181 -0
- package/templates/apps/web/app/[locale]/(authed)/leads/components/LeadsTable.tsx +137 -0
- package/templates/apps/web/app/[locale]/(authed)/leads/page.tsx +111 -0
- package/templates/apps/web/app/[locale]/(authed)/sign-in-gate.tsx +1 -1
- package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +111 -0
- package/templates/apps/web/app/[locale]/[slug]/page.tsx +65 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/FlowStepperClient.tsx +1 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.permalink.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.test.tsx +6 -5
- package/templates/apps/web/app/[locale]/flows/[slug]/flow.actions.ts +1 -1
- package/templates/apps/web/app/[locale]/layout.tsx +214 -17
- package/templates/apps/web/app/[locale]/pricing/page.tsx +40 -0
- package/templates/apps/web/app/[locale]/privacy/page.tsx +40 -0
- package/templates/apps/web/app/[locale]/terms/page.tsx +40 -0
- package/templates/apps/web/components/google-analytics.tsx +18 -1
- package/templates/apps/web/eslint.config.mjs +69 -0
- package/templates/apps/web/jest.config.cjs +12 -15
- package/templates/apps/web/lib/__tests__/server-api.test.ts +61 -0
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +32 -5
- package/templates/apps/web/lib/nav-config.ts +27 -7
- package/templates/apps/web/lib/server-api.ts +29 -13
- package/templates/apps/web/lib/site-chrome.ts +29 -0
- package/templates/apps/web/lib/telemetry-scrub.ts +46 -0
- package/templates/apps/web/messages/en.json +86 -1
- package/templates/apps/web/next.config.mjs +20 -0
- package/templates/apps/web/package.json +6 -2
- package/templates/apps/web/sentry.client.config.ts +131 -0
- package/templates/apps/web/sentry.edge.config.ts +72 -0
- package/templates/apps/web/sentry.server.config.ts +72 -0
- package/templates/apps/web/src/lib/routes.ts +13 -18
- package/templates/brand_assets/README.md +24 -0
- package/templates/content/en/AboutPage/about.mdx +160 -15
- package/templates/content/en/ContactPage/contact.mdx +90 -13
- package/templates/content/en/FAQPage/faq.mdx +62 -22
- package/templates/content/en/HomePage/home.mdx +244 -20
- package/templates/content/en/LandingPage/blog.mdx +83 -0
- package/templates/content/en/LandingPage/features.mdx +103 -0
- package/templates/content/en/LandingPage/how-it-works.mdx +143 -0
- package/templates/database/CHANGELOG.md +21 -0
- package/templates/database/__tests__/seed.test.ts +1 -1
- package/templates/database/eslint.config.mjs +69 -0
- package/templates/database/package.json +7 -3
- package/templates/database/seed.ts +1 -1
- package/templates/package.json +1 -14
- package/versions.json +52 -0
- /package/templates/apps/web/{src/components → components}/SiteNav.tsx +0 -0
|
@@ -2,40 +2,264 @@
|
|
|
2
2
|
type: "HomePage"
|
|
3
3
|
slug: "home"
|
|
4
4
|
title: "{{COMPANY_NAME}}"
|
|
5
|
-
description: "
|
|
5
|
+
description: "The only {product descriptor} for {target market} to help you {product benefit}."
|
|
6
6
|
sections:
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
9
|
"id": "hero",
|
|
10
10
|
"type": "hero",
|
|
11
|
-
"data":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
11
|
+
"data": {
|
|
12
|
+
"variant": "split",
|
|
13
|
+
"headline": "How to get {outcome} without {problem}",
|
|
14
|
+
"subheadline": "The only {product descriptor} for {target market} to help you {product benefit}.",
|
|
15
|
+
"checklist": [
|
|
16
|
+
"Bullet point about feature",
|
|
17
|
+
"Bullet point about benefit",
|
|
18
|
+
"Bullet point about getting start"
|
|
19
|
+
],
|
|
20
|
+
"primaryCta": {
|
|
21
|
+
"label": "{Primary CTA}",
|
|
22
|
+
"href": "/contact"
|
|
18
23
|
},
|
|
24
|
+
"secondaryCta": {
|
|
25
|
+
"label": "{Secondary CTA}",
|
|
26
|
+
"href": "/how-it-works",
|
|
27
|
+
"variant": "outline"
|
|
28
|
+
},
|
|
29
|
+
"closingLine": "{Risk Reversal goes here}",
|
|
30
|
+
"imagerySlot": true
|
|
31
|
+
}
|
|
19
32
|
},
|
|
20
33
|
{
|
|
21
|
-
"id": "
|
|
22
|
-
"type": "
|
|
23
|
-
"data":
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
34
|
+
"id": "logo-cloud",
|
|
35
|
+
"type": "logoCloud",
|
|
36
|
+
"data": {
|
|
37
|
+
"headline": "Don’t just take our word for it",
|
|
38
|
+
"logos": [
|
|
39
|
+
{
|
|
40
|
+
"name": "Placeholder logo",
|
|
41
|
+
"src": "/logomark.svg"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "Placeholder logo",
|
|
45
|
+
"src": "/logomark.svg"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Placeholder logo",
|
|
49
|
+
"src": "/logomark.svg"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "Placeholder logo",
|
|
53
|
+
"src": "/logomark.svg"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "Placeholder logo",
|
|
57
|
+
"src": "/logomark.svg"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Placeholder logo",
|
|
61
|
+
"src": "/logomark.svg"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"layout": "inline",
|
|
65
|
+
"treatment": "monochrome"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "comparison",
|
|
70
|
+
"type": "decision-split",
|
|
71
|
+
"data": {
|
|
72
|
+
"headline": "There's a better way to {fix problem / get result}",
|
|
73
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
74
|
+
"panels": [
|
|
75
|
+
{
|
|
76
|
+
"eyebrow": "Old Way",
|
|
77
|
+
"title": "Medium length section heading goes here",
|
|
78
|
+
"checklist": [
|
|
79
|
+
"{Feature the old way does not have}",
|
|
80
|
+
"{Feature the old way does not have}",
|
|
81
|
+
"{Feature the old way does not have}"
|
|
82
|
+
],
|
|
83
|
+
"glyph": "cross"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"eyebrow": "New Way",
|
|
87
|
+
"title": "Medium length section heading goes here",
|
|
88
|
+
"checklist": [
|
|
89
|
+
"{Feature the new way has}",
|
|
90
|
+
"{Feature the new way has}",
|
|
91
|
+
"{Feature the new way has}"
|
|
92
|
+
],
|
|
93
|
+
"glyph": "check",
|
|
94
|
+
"highlighted": true
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "core-features",
|
|
101
|
+
"type": "feature",
|
|
102
|
+
"data": {
|
|
103
|
+
"eyebrow": "Core Features",
|
|
104
|
+
"headline": "Everything you need to {achieve a desired outcome}",
|
|
105
|
+
"description": "But don't take our word for it. We'll let the product do the talking.",
|
|
106
|
+
"features": [
|
|
107
|
+
{
|
|
108
|
+
"title": "Feature 1",
|
|
109
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
110
|
+
"link": {
|
|
111
|
+
"label": "Learn More",
|
|
112
|
+
"href": "/features"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"title": "Feature 2",
|
|
117
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
118
|
+
"link": {
|
|
119
|
+
"label": "Learn More",
|
|
120
|
+
"href": "/features"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"title": "Feature 3",
|
|
125
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
126
|
+
"link": {
|
|
127
|
+
"label": "Learn More",
|
|
128
|
+
"href": "/features"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"title": "Feature 4",
|
|
133
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
134
|
+
"link": {
|
|
135
|
+
"label": "Learn More",
|
|
136
|
+
"href": "/features"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"title": "Feature 5",
|
|
141
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
142
|
+
"link": {
|
|
143
|
+
"label": "Learn More",
|
|
144
|
+
"href": "/features"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"actions": [
|
|
149
|
+
{
|
|
150
|
+
"kind": "button",
|
|
151
|
+
"label": "Get Started",
|
|
152
|
+
"href": "/contact"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"kind": "link",
|
|
156
|
+
"label": "All Features",
|
|
157
|
+
"href": "/features"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "integrations",
|
|
164
|
+
"type": "cta",
|
|
165
|
+
"data": {
|
|
166
|
+
"headline": "Direct integrations with your favorite tools",
|
|
167
|
+
"description": "Describe what these integrations help your customers do and impressive facts about how they work.",
|
|
168
|
+
"primaryCta": {
|
|
169
|
+
"label": "Get Started",
|
|
170
|
+
"href": "/contact"
|
|
27
171
|
},
|
|
172
|
+
"secondaryCta": {
|
|
173
|
+
"label": "See all Integrations",
|
|
174
|
+
"href": "/features",
|
|
175
|
+
"variant": "outline"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
28
178
|
},
|
|
29
179
|
{
|
|
30
|
-
"id": "
|
|
180
|
+
"id": "how-it-works",
|
|
181
|
+
"type": "stair-steps",
|
|
182
|
+
"data": {
|
|
183
|
+
"headline": "Get setup in {number} easy steps",
|
|
184
|
+
"description": "Summarize the setup process briefly in a way that makes it seem approachable and quick.",
|
|
185
|
+
"tiles": [
|
|
186
|
+
{
|
|
187
|
+
"title": "{Step 1 Title}",
|
|
188
|
+
"body": "The first thing they need to do to get the oucome they want"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"title": "{Step 2 Title}",
|
|
192
|
+
"body": "The second thing they need to do to get the oucome they want"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"title": "{Step 3 Title}",
|
|
196
|
+
"body": "The third thing they need to do to get the oucome they want"
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"direction": "up-right"
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "switch",
|
|
31
204
|
"type": "cta",
|
|
32
|
-
"data":
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
205
|
+
"data": {
|
|
206
|
+
"variant": "box",
|
|
207
|
+
"headline": "Switch to {your product} in {time amount} or less",
|
|
208
|
+
"description": "You shouldn't have to {experience a painful problem}. With {your product}, you can finally {achieve a value outcome or get a big improvement}.",
|
|
209
|
+
"chips": [
|
|
210
|
+
"No credit card required",
|
|
211
|
+
"Cancel any time",
|
|
212
|
+
"Live chat support"
|
|
213
|
+
],
|
|
214
|
+
"primaryCta": {
|
|
215
|
+
"label": "{Primary CTA}",
|
|
216
|
+
"href": "/contact"
|
|
217
|
+
},
|
|
218
|
+
"secondaryCta": {
|
|
219
|
+
"label": "{Secondary CTA}",
|
|
220
|
+
"href": "/pricing",
|
|
221
|
+
"variant": "outline"
|
|
36
222
|
},
|
|
223
|
+
"closingLine": "{Social Proof goes here}"
|
|
224
|
+
}
|
|
37
225
|
},
|
|
226
|
+
{
|
|
227
|
+
"id": "manifesto",
|
|
228
|
+
"type": "content-block",
|
|
229
|
+
"data": {
|
|
230
|
+
"variant": "media-right",
|
|
231
|
+
"eyebrow": "Manifesto",
|
|
232
|
+
"headline": "We want you to {ability they couldn't do before}",
|
|
233
|
+
"body": "Hey, I’m {your name}, the founder of {your company}.\n\nWrite a few sentences introducing the problems you solve. You can even ask a rhetorical question to get people thinking about their own personal experiences with a problem they might have encountered.\n\nThis is your chance to tell the backstory of why your product exists and explain the gap your product fills. Don’t be afraid to take a stance and plant your flag.\n\nWe believe that {you should be able to X without Y}.\n\nWe’ll help you:\n\nSolve this problem\n\nSolve another problem\n\nSolve this other problem\n\nIf that resonates with you, you're in the right place.\n\n- (your name)",
|
|
234
|
+
"cta": {
|
|
235
|
+
"label": "Sign Up",
|
|
236
|
+
"href": "/sign-in"
|
|
237
|
+
},
|
|
238
|
+
"secondaryCta": {
|
|
239
|
+
"label": "More about us",
|
|
240
|
+
"href": "/about",
|
|
241
|
+
"variant": "outline"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "demo",
|
|
247
|
+
"type": "video-section",
|
|
248
|
+
"data": {
|
|
249
|
+
"headline": "See {your product} in action",
|
|
250
|
+
"intro": "Click play to with this {time amount} demo",
|
|
251
|
+
"video": {
|
|
252
|
+
"type": "video",
|
|
253
|
+
"alt": "{Your Product} Demo"
|
|
254
|
+
},
|
|
255
|
+
"playBadge": true,
|
|
256
|
+
"cta": {
|
|
257
|
+
"label": "Get Started",
|
|
258
|
+
"href": "/contact"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
38
262
|
]
|
|
39
263
|
---
|
|
40
264
|
|
|
41
|
-
{/* Rendered from frontmatter `sections[]`.
|
|
265
|
+
{/* Rendered from frontmatter `sections[]`. The copy is the standardissue mad-lib placeholder, verbatim — replace every {brace} with your own words before you launch; the `scaffold-page` skill can add a whole new page for you. */}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "LandingPage"
|
|
3
|
+
slug: "blog"
|
|
4
|
+
title: "Resources for {customer profile}"
|
|
5
|
+
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"variant": "centered",
|
|
14
|
+
"eyebrow": "Blog",
|
|
15
|
+
"headline": "Resources for {customer profile}",
|
|
16
|
+
"subheadline": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "pro-blog",
|
|
21
|
+
"type": "cta",
|
|
22
|
+
"data":
|
|
23
|
+
{
|
|
24
|
+
"headline": "The blog listing ships with the Pro docs-blog module",
|
|
25
|
+
"description": "This Free site carries one static resources page. The Pro docs-blog module adds the full blog — MDX posts, the paginated listing and the documentation surface — at this same /blog route; install it and this page is replaced by the real listing.",
|
|
26
|
+
"primaryCta": { "label": "See Pro pricing", "href": "/pricing" },
|
|
27
|
+
"secondaryCta":
|
|
28
|
+
{ "label": "Talk to us", "href": "/contact", "variant": "outline" },
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "newsletter",
|
|
33
|
+
"type": "newsletter",
|
|
34
|
+
"data":
|
|
35
|
+
{
|
|
36
|
+
"headline": "Stay Up to Date with our {fequency} Newsletter",
|
|
37
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
38
|
+
"placeholder": "Enter your email",
|
|
39
|
+
"submitLabel": "Sign Up",
|
|
40
|
+
"consentText": "By clicking Sign Up you're confirming that you agree with our Terms and Conditions",
|
|
41
|
+
"successMessage": "Thank you! Your submission has been received!",
|
|
42
|
+
"action": "/v1/leads/subscribe",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "logo-cloud",
|
|
47
|
+
"type": "logoCloud",
|
|
48
|
+
"data":
|
|
49
|
+
{
|
|
50
|
+
"headline": "Don’t just take our word for it",
|
|
51
|
+
"logos":
|
|
52
|
+
[
|
|
53
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
54
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
55
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
56
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
57
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
58
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
59
|
+
],
|
|
60
|
+
"layout": "inline",
|
|
61
|
+
"treatment": "monochrome",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "testimonial",
|
|
66
|
+
"type": "testimonials",
|
|
67
|
+
"data":
|
|
68
|
+
{
|
|
69
|
+
"variant": "featured",
|
|
70
|
+
"items":
|
|
71
|
+
[
|
|
72
|
+
{
|
|
73
|
+
"quote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
74
|
+
"author": "John Smith",
|
|
75
|
+
"role": "CEO, Google",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
]
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
{/* The Free blog teaser (one static page, rendered by the generic `[slug]` route). With the Pro docs-blog module installed its own `blog/` route directory takes precedence and this file is inert. Placeholder copy — replace before you launch. */}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "LandingPage"
|
|
3
|
+
slug: "features"
|
|
4
|
+
title: "Medium length section heading goes here"
|
|
5
|
+
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "core-features",
|
|
10
|
+
"type": "feature",
|
|
11
|
+
"data": {
|
|
12
|
+
"eyebrow": "Core Features",
|
|
13
|
+
"headline": "Medium length section heading goes here",
|
|
14
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
15
|
+
"features": [
|
|
16
|
+
{
|
|
17
|
+
"title": "Feature 1",
|
|
18
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
19
|
+
"link": {
|
|
20
|
+
"label": "Learn More",
|
|
21
|
+
"href": "/features"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"title": "Feature 2",
|
|
26
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
27
|
+
"link": {
|
|
28
|
+
"label": "Learn More",
|
|
29
|
+
"href": "/features"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"title": "Feature 4",
|
|
34
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
35
|
+
"link": {
|
|
36
|
+
"label": "Learn More",
|
|
37
|
+
"href": "/features"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"title": "Feature 3",
|
|
42
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
43
|
+
"link": {
|
|
44
|
+
"label": "Learn More",
|
|
45
|
+
"href": "/features"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"title": "Feature 5",
|
|
50
|
+
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
51
|
+
"link": {
|
|
52
|
+
"label": "Learn More",
|
|
53
|
+
"href": "/features"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "integrations",
|
|
61
|
+
"type": "cta",
|
|
62
|
+
"data": {
|
|
63
|
+
"headline": "Direct integrations with your favorite tools",
|
|
64
|
+
"description": "Describe what these integrations help your customers do and impressive facts about how they work.",
|
|
65
|
+
"primaryCta": {
|
|
66
|
+
"label": "Get Started",
|
|
67
|
+
"href": "/contact"
|
|
68
|
+
},
|
|
69
|
+
"secondaryCta": {
|
|
70
|
+
"label": "See all Integrations",
|
|
71
|
+
"href": "/features",
|
|
72
|
+
"variant": "outline"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "switch",
|
|
78
|
+
"type": "cta",
|
|
79
|
+
"data": {
|
|
80
|
+
"variant": "box",
|
|
81
|
+
"headline": "Switch to {your product} in {time amount} or less",
|
|
82
|
+
"description": "You shouldn't have to {experience a painful problem}. With {your product}, you can finally {achieve a value outcome or get a big improvement}.",
|
|
83
|
+
"chips": [
|
|
84
|
+
"No credit card required",
|
|
85
|
+
"Cancel any time",
|
|
86
|
+
"Live chat support"
|
|
87
|
+
],
|
|
88
|
+
"primaryCta": {
|
|
89
|
+
"label": "{Primary CTA}",
|
|
90
|
+
"href": "/contact"
|
|
91
|
+
},
|
|
92
|
+
"secondaryCta": {
|
|
93
|
+
"label": "{Secondary CTA}",
|
|
94
|
+
"href": "/pricing",
|
|
95
|
+
"variant": "outline"
|
|
96
|
+
},
|
|
97
|
+
"closingLine": "{Social Proof goes here}"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
{/* Rendered from frontmatter `sections[]` by the generic `[slug]` route. Placeholder copy, verbatim from the reference — replace before you launch. */}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "LandingPage"
|
|
3
|
+
slug: "how-it-works"
|
|
4
|
+
title: "Get set up in {number} easy steps"
|
|
5
|
+
description: "Summarize the setup process briefly in a way that makes it seem approachable and quick."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"eyebrow": "How it Works",
|
|
14
|
+
"headline": "Get set up in {number} easy steps",
|
|
15
|
+
"subheadline": "Summarize the setup process briefly in a way that makes it seem approachable and quick.",
|
|
16
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
17
|
+
"secondaryCta":
|
|
18
|
+
{
|
|
19
|
+
"label": "{Secondary CTA}",
|
|
20
|
+
"href": "/pricing",
|
|
21
|
+
"variant": "outline",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "steps",
|
|
27
|
+
"type": "feature",
|
|
28
|
+
"data":
|
|
29
|
+
{
|
|
30
|
+
"variant": "alternating",
|
|
31
|
+
"numbered": true,
|
|
32
|
+
"headline": "",
|
|
33
|
+
"features":
|
|
34
|
+
[
|
|
35
|
+
{
|
|
36
|
+
"title": "The first thing they need to do to get the outcome they want",
|
|
37
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"title": "The second thing they need to do to get the outcome they want",
|
|
41
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"title": "The third thing they need to do to get the outcome they want",
|
|
45
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "logo-cloud",
|
|
52
|
+
"type": "logoCloud",
|
|
53
|
+
"data":
|
|
54
|
+
{
|
|
55
|
+
"headline": "Don’t just take our word for it",
|
|
56
|
+
"logos":
|
|
57
|
+
[
|
|
58
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
59
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
60
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
61
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
62
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
63
|
+
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
64
|
+
],
|
|
65
|
+
"layout": "inline",
|
|
66
|
+
"treatment": "monochrome",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "testimonial",
|
|
71
|
+
"type": "testimonials",
|
|
72
|
+
"data":
|
|
73
|
+
{
|
|
74
|
+
"variant": "featured",
|
|
75
|
+
"items":
|
|
76
|
+
[
|
|
77
|
+
{
|
|
78
|
+
"quote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
79
|
+
"author": "John Smith",
|
|
80
|
+
"role": "CEO, Google",
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "switch",
|
|
87
|
+
"type": "cta",
|
|
88
|
+
"data":
|
|
89
|
+
{
|
|
90
|
+
"variant": "box",
|
|
91
|
+
"headline": "Switch to {your product} in {time amount} or less",
|
|
92
|
+
"description": "You shouldn't have to {experience a painful problem}. With {your product}, you can finally {achieve a value outcome or get a big improvement}.",
|
|
93
|
+
"chips":
|
|
94
|
+
["No credit card required", "Cancel any time", "Live chat support"],
|
|
95
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
96
|
+
"secondaryCta":
|
|
97
|
+
{
|
|
98
|
+
"label": "{Secondary CTA}",
|
|
99
|
+
"href": "/pricing",
|
|
100
|
+
"variant": "outline",
|
|
101
|
+
},
|
|
102
|
+
"closingLine": "{Social Proof goes here}",
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "faq",
|
|
107
|
+
"type": "faq",
|
|
108
|
+
"data":
|
|
109
|
+
{
|
|
110
|
+
"headline": "FAQs",
|
|
111
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
|
|
112
|
+
"supportLink": { "label": "Contact", "href": "/contact" },
|
|
113
|
+
"presentation": "accordion",
|
|
114
|
+
"initialOpen": "first",
|
|
115
|
+
"items":
|
|
116
|
+
[
|
|
117
|
+
{
|
|
118
|
+
"question": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa?",
|
|
119
|
+
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"question": "Dolorem consectetur quia maxime sunt ut sint. Fuga optio dolorem animi voluptatem laudantium error. Quis accusamus deleniti rer?",
|
|
123
|
+
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"question": "Totam nihil esse. Itaque optio temporibus adipisci. Rerum nisi aperiam aliquid doloremque aliquam?",
|
|
127
|
+
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"question": "Delectus minus officiis et. Perspiciatis illum nisi vitae. Sed consequuntur animi corrupti distinctio ipsam accusamus?",
|
|
131
|
+
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"question": "Aperiam perferendis voluptatem est sit enim sed eaque perspiciatis enim. Est explicabo ea explicabo et et dignissimos aliquid?",
|
|
135
|
+
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
]
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
{/* Rendered from frontmatter `sections[]` by the generic `[slug]` route (`app/[locale]/[slug]/page.tsx`). It emits the LandingPage builder's `WebPage` JSON-LD (the scaffold's structured-data gate accepts nothing else for a LandingPage). Placeholder copy, verbatim from the reference — replace before you launch. */}
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @working-theory/database
|
|
2
2
|
|
|
3
|
+
## 0.24.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`885adcb`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/885adcbfb23b032424d105942ac0085a03209208), [`c1fb87c`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/c1fb87cbf3ee7ca97951b272cdcdf48c0d1f3a37), [`0b71694`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/0b71694feb662a9686d85cf9478a0b703cc92805), [`6f98cfd`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/6f98cfdef3ebd995dd1c812071cbe62ba4324f64), [`f2a92c5`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/f2a92c585cd5e81fd146c78f65d6fcbca52f7bca), [`ea1e07d`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/ea1e07dde98d451325d9c0e49c1dad3d243c7a68)]:
|
|
8
|
+
- @working-theory/validation@0.24.0
|
|
9
|
+
|
|
10
|
+
## 0.23.0
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`10a9fc9`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/10a9fc97455ecadb760c06d295965035b45aa605)]:
|
|
15
|
+
- @working-theory/validation@0.23.0
|
|
16
|
+
|
|
17
|
+
## 0.22.1
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies []:
|
|
22
|
+
- @working-theory/validation@0.22.1
|
|
23
|
+
|
|
3
24
|
## 0.22.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Prisma is injected as a lightweight jest-mock stub typed as
|
|
8
8
|
* `DefaultWorkspacePrismaClient` — no live Postgres, mirroring the DB-free
|
|
9
9
|
* convention in database/__tests__/user-cascade.test.ts and the
|
|
10
|
-
* `createAuth({ prisma })` DI pattern in apps-paid/
|
|
10
|
+
* `createAuth({ prisma })` DI pattern in apps-paid/admin/__tests__.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {
|