create-agentic-app 1.1.55 → 1.1.57
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/package.json +1 -1
- package/template/.agents/skills/security-scanner/SKILL.md +157 -0
- package/template/.agents/skills/security-scanner/references/A01-broken-access-control.md +136 -0
- package/template/.agents/skills/security-scanner/references/A02-security-misconfiguration.md +130 -0
- package/template/.agents/skills/security-scanner/references/A03-software-supply-chain-failures.md +117 -0
- package/template/.agents/skills/security-scanner/references/A04-cryptographic-failures.md +141 -0
- package/template/.agents/skills/security-scanner/references/A05-injection.md +155 -0
- package/template/.agents/skills/security-scanner/references/A06-insecure-design.md +145 -0
- package/template/.agents/skills/security-scanner/references/A07-authentication-failures.md +150 -0
- package/template/.agents/skills/security-scanner/references/A08-software-data-integrity-failures.md +132 -0
- package/template/.agents/skills/security-scanner/references/A09-security-logging-alerting-failures.md +130 -0
- package/template/.agents/skills/security-scanner/references/A10-mishandling-exceptional-conditions.md +154 -0
- package/template/.agents/skills/security-scanner/references/report-template.md +148 -0
- package/template/.claude/agents/security-scanner.md +214 -0
- package/template/.claude/skills/security-scanner/SKILL.md +157 -0
- package/template/.claude/skills/security-scanner/references/A01-broken-access-control.md +136 -0
- package/template/.claude/skills/security-scanner/references/A02-security-misconfiguration.md +130 -0
- package/template/.claude/skills/security-scanner/references/A03-software-supply-chain-failures.md +117 -0
- package/template/.claude/skills/security-scanner/references/A04-cryptographic-failures.md +141 -0
- package/template/.claude/skills/security-scanner/references/A05-injection.md +155 -0
- package/template/.claude/skills/security-scanner/references/A06-insecure-design.md +145 -0
- package/template/.claude/skills/security-scanner/references/A07-authentication-failures.md +150 -0
- package/template/.claude/skills/security-scanner/references/A08-software-data-integrity-failures.md +132 -0
- package/template/.claude/skills/security-scanner/references/A09-security-logging-alerting-failures.md +130 -0
- package/template/.claude/skills/security-scanner/references/A10-mishandling-exceptional-conditions.md +154 -0
- package/template/.claude/skills/security-scanner/references/report-template.md +148 -0
- package/template/AGENTS.md +40 -0
- package/template/next-env.d.ts +1 -1
- package/template/specs/ui-polish-responsive/README.md +59 -0
- package/template/specs/ui-polish-responsive/action-required.md +3 -0
- package/template/specs/ui-polish-responsive/requirements.md +53 -0
- package/template/specs/ui-polish-responsive/tasks/task-01-globals-css.md +144 -0
- package/template/specs/ui-polish-responsive/tasks/task-02-layout.md +66 -0
- package/template/specs/ui-polish-responsive/tasks/task-03-site-header.md +79 -0
- package/template/specs/ui-polish-responsive/tasks/task-04-site-footer.md +63 -0
- package/template/specs/ui-polish-responsive/tasks/task-05-home-page.md +215 -0
- package/template/specs/ui-polish-responsive/tasks/task-06-dashboard.md +222 -0
- package/template/specs/ui-polish-responsive/tasks/task-07-chat-page.md +225 -0
- package/template/specs/ui-polish-responsive/tasks/task-08-profile-page.md +192 -0
- package/template/specs/ui-polish-responsive/tasks/task-09-auth-pages.md +97 -0
- package/template/specs/ui-polish-responsive/tasks/task-10-setup-checklist.md +120 -0
- package/template/specs/ui-polish-responsive/tasks/task-11-starter-prompt-modal.md +87 -0
- package/template/src/app/globals.css +65 -7
- package/template/src/app/layout.tsx +2 -2
- package/template/src/app/page.tsx +174 -174
- package/template/src/components/setup-checklist.tsx +162 -162
- package/template/src/components/site-footer.tsx +2 -2
- package/template/src/components/site-header.tsx +3 -3
- package/template/src/components/starter-prompt-modal.tsx +202 -202
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import Link from "next/link";
|
|
4
|
-
import { Video, Shield, Database, Palette, Bot } from "lucide-react";
|
|
5
|
-
import { SetupChecklist } from "@/components/setup-checklist";
|
|
6
|
-
import { StarterPromptModal } from "@/components/starter-prompt-modal";
|
|
7
|
-
import { Button } from "@/components/ui/button";
|
|
8
|
-
import { useDiagnostics } from "@/hooks/use-diagnostics";
|
|
9
|
-
|
|
10
|
-
export default function Home() {
|
|
11
|
-
const { isAuthReady, isAiReady, loading } = useDiagnostics();
|
|
12
|
-
return (
|
|
13
|
-
<main className="flex-1 container mx-auto px-4 py-12">
|
|
14
|
-
<div className="max-w-4xl mx-auto text-center space-y-8">
|
|
15
|
-
<div className="space-y-4">
|
|
16
|
-
<div className="flex items-center justify-center gap-3 mb-2">
|
|
17
|
-
<div className="flex items-center justify-center w-12 h-12 rounded-xl bg-primary/10">
|
|
18
|
-
<Bot className="h-7 w-7 text-primary" />
|
|
19
|
-
</div>
|
|
20
|
-
<h1 className="text-5xl font-bold tracking-tight bg-gradient-to-r from-primary via-primary/90 to-primary/70 bg-clip-text text-transparent">
|
|
21
|
-
Starter Kit
|
|
22
|
-
</h1>
|
|
23
|
-
</div>
|
|
24
|
-
<h2 className="text-2xl font-semibold text-muted-foreground">
|
|
25
|
-
Complete Boilerplate for AI Applications
|
|
26
|
-
</h2>
|
|
27
|
-
<p className="text-xl text-muted-foreground">
|
|
28
|
-
A complete agentic coding boilerplate with authentication, database, AI
|
|
29
|
-
integration, and modern tooling for building AI-powered applications
|
|
30
|
-
</p>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
{/* YouTube Tutorial Video */}
|
|
34
|
-
<div className="space-y-4">
|
|
35
|
-
<h3 className="text-2xl font-semibold flex items-center justify-center gap-2">
|
|
36
|
-
<Video className="h-6 w-6" />
|
|
37
|
-
Video Tutorial
|
|
38
|
-
</h3>
|
|
39
|
-
<p className="text-muted-foreground">
|
|
40
|
-
Watch the complete walkthrough of this agentic coding boilerplate:
|
|
41
|
-
</p>
|
|
42
|
-
<div className="relative w-full max-w-3xl mx-auto">
|
|
43
|
-
<div className="relative pb-[56.25%] h-0 overflow-hidden rounded-lg border">
|
|
44
|
-
<iframe
|
|
45
|
-
className="absolute top-0 left-0 w-full h-full"
|
|
46
|
-
src="https://www.youtube.com/embed/JQ86N3WOAh4"
|
|
47
|
-
title="Agentic Coding Boilerplate Tutorial"
|
|
48
|
-
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
|
49
|
-
allowFullScreen
|
|
50
|
-
/>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
|
|
55
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mt-12">
|
|
56
|
-
<div className="p-6 border rounded-lg">
|
|
57
|
-
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
58
|
-
<Shield className="h-4 w-4" />
|
|
59
|
-
Authentication
|
|
60
|
-
</h3>
|
|
61
|
-
<p className="text-sm text-muted-foreground">
|
|
62
|
-
Better Auth with Google OAuth integration
|
|
63
|
-
</p>
|
|
64
|
-
</div>
|
|
65
|
-
<div className="p-6 border rounded-lg">
|
|
66
|
-
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
67
|
-
<Database className="h-4 w-4" />
|
|
68
|
-
Database
|
|
69
|
-
</h3>
|
|
70
|
-
<p className="text-sm text-muted-foreground">
|
|
71
|
-
Drizzle ORM with PostgreSQL setup
|
|
72
|
-
</p>
|
|
73
|
-
</div>
|
|
74
|
-
<div className="p-6 border rounded-lg">
|
|
75
|
-
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
76
|
-
<Bot className="h-4 w-4" />
|
|
77
|
-
AI Ready
|
|
78
|
-
</h3>
|
|
79
|
-
<p className="text-sm text-muted-foreground">
|
|
80
|
-
Vercel AI SDK with OpenRouter integration
|
|
81
|
-
</p>
|
|
82
|
-
</div>
|
|
83
|
-
<div className="p-6 border rounded-lg">
|
|
84
|
-
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
85
|
-
<Palette className="h-4 w-4" />
|
|
86
|
-
UI Components
|
|
87
|
-
</h3>
|
|
88
|
-
<p className="text-sm text-muted-foreground">
|
|
89
|
-
shadcn/ui with Tailwind CSS
|
|
90
|
-
</p>
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
|
|
94
|
-
<div className="space-y-6 mt-12">
|
|
95
|
-
<SetupChecklist />
|
|
96
|
-
|
|
97
|
-
<h3 className="text-2xl font-semibold">Next Steps</h3>
|
|
98
|
-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 text-left">
|
|
99
|
-
<div className="p-4 border rounded-lg">
|
|
100
|
-
<h4 className="font-medium mb-2">
|
|
101
|
-
1. Set up environment variables
|
|
102
|
-
</h4>
|
|
103
|
-
<p className="text-sm text-muted-foreground mb-2">
|
|
104
|
-
Copy <code>.env.example</code> to <code>.env.local</code> and
|
|
105
|
-
configure:
|
|
106
|
-
</p>
|
|
107
|
-
<ul className="text-sm text-muted-foreground space-y-1 list-disc list-inside">
|
|
108
|
-
<li>POSTGRES_URL (PostgreSQL connection string)</li>
|
|
109
|
-
<li>GOOGLE_CLIENT_ID (OAuth credentials)</li>
|
|
110
|
-
<li>GOOGLE_CLIENT_SECRET (OAuth credentials)</li>
|
|
111
|
-
<li>OPENROUTER_API_KEY (for AI functionality)</li>
|
|
112
|
-
</ul>
|
|
113
|
-
</div>
|
|
114
|
-
<div className="p-4 border rounded-lg">
|
|
115
|
-
<h4 className="font-medium mb-2">2. Set up your database</h4>
|
|
116
|
-
<p className="text-sm text-muted-foreground mb-2">
|
|
117
|
-
Run database migrations:
|
|
118
|
-
</p>
|
|
119
|
-
<div className="space-y-2">
|
|
120
|
-
<code className="text-sm bg-muted p-2 rounded block">
|
|
121
|
-
npm run db:generate
|
|
122
|
-
</code>
|
|
123
|
-
<code className="text-sm bg-muted p-2 rounded block">
|
|
124
|
-
npm run db:migrate
|
|
125
|
-
</code>
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
<div className="p-4 border rounded-lg">
|
|
129
|
-
<h4 className="font-medium mb-2">3. Try the features</h4>
|
|
130
|
-
<div className="space-y-2">
|
|
131
|
-
{loading || !isAuthReady ? (
|
|
132
|
-
<Button size="sm" className="w-full" disabled={true}>
|
|
133
|
-
View Dashboard
|
|
134
|
-
</Button>
|
|
135
|
-
) : (
|
|
136
|
-
<Button asChild size="sm" className="w-full">
|
|
137
|
-
<Link href="/dashboard">View Dashboard</Link>
|
|
138
|
-
</Button>
|
|
139
|
-
)}
|
|
140
|
-
{loading || !isAiReady ? (
|
|
141
|
-
<Button
|
|
142
|
-
variant="outline"
|
|
143
|
-
size="sm"
|
|
144
|
-
className="w-full"
|
|
145
|
-
disabled={true}
|
|
146
|
-
>
|
|
147
|
-
Try AI Chat
|
|
148
|
-
</Button>
|
|
149
|
-
) : (
|
|
150
|
-
<Button
|
|
151
|
-
asChild
|
|
152
|
-
variant="outline"
|
|
153
|
-
size="sm"
|
|
154
|
-
className="w-full"
|
|
155
|
-
>
|
|
156
|
-
<Link href="/chat">Try AI Chat</Link>
|
|
157
|
-
</Button>
|
|
158
|
-
)}
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
<div className="p-4 border rounded-lg">
|
|
162
|
-
<h4 className="font-medium mb-2">4. Start building</h4>
|
|
163
|
-
<p className="text-sm text-muted-foreground mb-3">
|
|
164
|
-
Customize the components, add your own pages, and build your
|
|
165
|
-
application on top of this solid foundation.
|
|
166
|
-
</p>
|
|
167
|
-
<StarterPromptModal />
|
|
168
|
-
</div>
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
</main>
|
|
173
|
-
);
|
|
174
|
-
}
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { Video, Shield, Database, Palette, Bot } from "lucide-react";
|
|
5
|
+
import { SetupChecklist } from "@/components/setup-checklist";
|
|
6
|
+
import { StarterPromptModal } from "@/components/starter-prompt-modal";
|
|
7
|
+
import { Button } from "@/components/ui/button";
|
|
8
|
+
import { useDiagnostics } from "@/hooks/use-diagnostics";
|
|
9
|
+
|
|
10
|
+
export default function Home() {
|
|
11
|
+
const { isAuthReady, isAiReady, loading } = useDiagnostics();
|
|
12
|
+
return (
|
|
13
|
+
<main className="flex-1 container mx-auto px-4 py-12">
|
|
14
|
+
<div className="max-w-4xl mx-auto text-center space-y-8">
|
|
15
|
+
<div className="space-y-4">
|
|
16
|
+
<div className="flex items-center justify-center gap-3 mb-2">
|
|
17
|
+
<div className="flex items-center justify-center w-12 h-12 rounded-xl bg-primary/10">
|
|
18
|
+
<Bot className="h-7 w-7 text-primary" />
|
|
19
|
+
</div>
|
|
20
|
+
<h1 className="text-5xl font-bold tracking-tight bg-gradient-to-r from-primary via-primary/90 to-primary/70 bg-clip-text text-transparent">
|
|
21
|
+
Starter Kit
|
|
22
|
+
</h1>
|
|
23
|
+
</div>
|
|
24
|
+
<h2 className="text-2xl font-semibold text-muted-foreground">
|
|
25
|
+
Complete Boilerplate for AI Applications
|
|
26
|
+
</h2>
|
|
27
|
+
<p className="text-xl text-muted-foreground">
|
|
28
|
+
A complete agentic coding boilerplate with authentication, database, AI
|
|
29
|
+
integration, and modern tooling for building AI-powered applications
|
|
30
|
+
</p>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
{/* YouTube Tutorial Video */}
|
|
34
|
+
<div className="space-y-4">
|
|
35
|
+
<h3 className="text-2xl font-semibold flex items-center justify-center gap-2">
|
|
36
|
+
<Video className="h-6 w-6" />
|
|
37
|
+
Video Tutorial
|
|
38
|
+
</h3>
|
|
39
|
+
<p className="text-muted-foreground">
|
|
40
|
+
Watch the complete walkthrough of this agentic coding boilerplate:
|
|
41
|
+
</p>
|
|
42
|
+
<div className="relative w-full max-w-3xl mx-auto">
|
|
43
|
+
<div className="relative pb-[56.25%] h-0 overflow-hidden rounded-lg border">
|
|
44
|
+
<iframe
|
|
45
|
+
className="absolute top-0 left-0 w-full h-full"
|
|
46
|
+
src="https://www.youtube.com/embed/JQ86N3WOAh4"
|
|
47
|
+
title="Agentic Coding Boilerplate Tutorial"
|
|
48
|
+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
|
49
|
+
allowFullScreen
|
|
50
|
+
/>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mt-12">
|
|
56
|
+
<div className="p-6 border rounded-lg">
|
|
57
|
+
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
58
|
+
<Shield className="h-4 w-4" />
|
|
59
|
+
Authentication
|
|
60
|
+
</h3>
|
|
61
|
+
<p className="text-sm text-muted-foreground">
|
|
62
|
+
Better Auth with Google OAuth integration
|
|
63
|
+
</p>
|
|
64
|
+
</div>
|
|
65
|
+
<div className="p-6 border rounded-lg">
|
|
66
|
+
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
67
|
+
<Database className="h-4 w-4" />
|
|
68
|
+
Database
|
|
69
|
+
</h3>
|
|
70
|
+
<p className="text-sm text-muted-foreground">
|
|
71
|
+
Drizzle ORM with PostgreSQL setup
|
|
72
|
+
</p>
|
|
73
|
+
</div>
|
|
74
|
+
<div className="p-6 border rounded-lg">
|
|
75
|
+
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
76
|
+
<Bot className="h-4 w-4" />
|
|
77
|
+
AI Ready
|
|
78
|
+
</h3>
|
|
79
|
+
<p className="text-sm text-muted-foreground">
|
|
80
|
+
Vercel AI SDK with OpenRouter integration
|
|
81
|
+
</p>
|
|
82
|
+
</div>
|
|
83
|
+
<div className="p-6 border rounded-lg">
|
|
84
|
+
<h3 className="font-semibold mb-2 flex items-center gap-2">
|
|
85
|
+
<Palette className="h-4 w-4" />
|
|
86
|
+
UI Components
|
|
87
|
+
</h3>
|
|
88
|
+
<p className="text-sm text-muted-foreground">
|
|
89
|
+
shadcn/ui with Tailwind CSS
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<div className="space-y-6 mt-12">
|
|
95
|
+
<SetupChecklist />
|
|
96
|
+
|
|
97
|
+
<h3 className="text-2xl font-semibold">Next Steps</h3>
|
|
98
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 text-left">
|
|
99
|
+
<div className="p-4 border rounded-lg">
|
|
100
|
+
<h4 className="font-medium mb-2">
|
|
101
|
+
1. Set up environment variables
|
|
102
|
+
</h4>
|
|
103
|
+
<p className="text-sm text-muted-foreground mb-2">
|
|
104
|
+
Copy <code>.env.example</code> to <code>.env.local</code> and
|
|
105
|
+
configure:
|
|
106
|
+
</p>
|
|
107
|
+
<ul className="text-sm text-muted-foreground space-y-1 list-disc list-inside">
|
|
108
|
+
<li>POSTGRES_URL (PostgreSQL connection string)</li>
|
|
109
|
+
<li>GOOGLE_CLIENT_ID (OAuth credentials)</li>
|
|
110
|
+
<li>GOOGLE_CLIENT_SECRET (OAuth credentials)</li>
|
|
111
|
+
<li>OPENROUTER_API_KEY (for AI functionality)</li>
|
|
112
|
+
</ul>
|
|
113
|
+
</div>
|
|
114
|
+
<div className="p-4 border rounded-lg">
|
|
115
|
+
<h4 className="font-medium mb-2">2. Set up your database</h4>
|
|
116
|
+
<p className="text-sm text-muted-foreground mb-2">
|
|
117
|
+
Run database migrations:
|
|
118
|
+
</p>
|
|
119
|
+
<div className="space-y-2">
|
|
120
|
+
<code className="text-sm bg-muted p-2 rounded block">
|
|
121
|
+
npm run db:generate
|
|
122
|
+
</code>
|
|
123
|
+
<code className="text-sm bg-muted p-2 rounded block">
|
|
124
|
+
npm run db:migrate
|
|
125
|
+
</code>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
<div className="p-4 border rounded-lg">
|
|
129
|
+
<h4 className="font-medium mb-2">3. Try the features</h4>
|
|
130
|
+
<div className="space-y-2">
|
|
131
|
+
{loading || !isAuthReady ? (
|
|
132
|
+
<Button size="sm" className="w-full" disabled={true}>
|
|
133
|
+
View Dashboard
|
|
134
|
+
</Button>
|
|
135
|
+
) : (
|
|
136
|
+
<Button asChild size="sm" className="w-full">
|
|
137
|
+
<Link href="/dashboard">View Dashboard</Link>
|
|
138
|
+
</Button>
|
|
139
|
+
)}
|
|
140
|
+
{loading || !isAiReady ? (
|
|
141
|
+
<Button
|
|
142
|
+
variant="outline"
|
|
143
|
+
size="sm"
|
|
144
|
+
className="w-full"
|
|
145
|
+
disabled={true}
|
|
146
|
+
>
|
|
147
|
+
Try AI Chat
|
|
148
|
+
</Button>
|
|
149
|
+
) : (
|
|
150
|
+
<Button
|
|
151
|
+
asChild
|
|
152
|
+
variant="outline"
|
|
153
|
+
size="sm"
|
|
154
|
+
className="w-full"
|
|
155
|
+
>
|
|
156
|
+
<Link href="/chat">Try AI Chat</Link>
|
|
157
|
+
</Button>
|
|
158
|
+
)}
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
<div className="p-4 border rounded-lg">
|
|
162
|
+
<h4 className="font-medium mb-2">4. Start building</h4>
|
|
163
|
+
<p className="text-sm text-muted-foreground mb-3">
|
|
164
|
+
Customize the components, add your own pages, and build your
|
|
165
|
+
application on top of this solid foundation.
|
|
166
|
+
</p>
|
|
167
|
+
<StarterPromptModal />
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
</main>
|
|
173
|
+
);
|
|
174
|
+
}
|