diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 17ebbeb..f7304e9 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,6 +1,23 @@ { + "permissions": { + "allow": [ + "mcp__context7__resolve-library-id", + "mcp__context7__get-library-docs", + "Bash(npm run lint)", + "Bash(npm run typecheck:*)", + "mcp__playwright__browser_navigate", + "mcp__playwright__browser_click", + "mcp__playwright__browser_take_screenshot", + "mcp__playwright__browser_close", + "Bash(git add:*)", + "Bash(git log:*)" + ], + "additionalDirectories": [ + "C:\\c\\Projects\\nextjs-better-auth-postgresql-starter-kit" + ] + }, + "enableAllProjectMcpServers": true, "enabledMcpjsonServers": [ "context7" - ], - "enableAllProjectMcpServers": true + ] } \ No newline at end of file diff --git a/.gitignore b/.gitignore index cd2dbda..10c46df 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ # testing /coverage +/.playwright-mcp # next.js /.next/ diff --git a/.mcp.json b/.mcp.json index 6286133..259a959 100644 --- a/.mcp.json +++ b/.mcp.json @@ -1,9 +1,5 @@ { "mcpServers": { - "context7": { - "type": "http", - "url": "https://mcp.context7.com/mcp" - }, "playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] diff --git a/CLAUDE.md b/CLAUDE.md index 817ed3e..7e01793 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,2 +1,3 @@ - Always run the LINT and TYPESCHECK scripts after completing your changes. This is to check for any issues. - NEVER start the dev server yourself. If you need something from the terminal, ask the user to provide it to you. +- Avoid using custom colors unless very specifically instructed to do so. Stick to standard tailwind and shadcn colors, styles and tokens. diff --git a/src/app/page.tsx b/src/app/page.tsx index 5bb37ff..1b5b6ef 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -5,6 +5,7 @@ import { Button } from "@/components/ui/button"; import { SetupChecklist } from "@/components/setup-checklist"; import { useDiagnostics } from "@/hooks/use-diagnostics"; import { StarterPromptModal } from "@/components/starter-prompt-modal"; +import { Video, Shield, Database, Palette, Bot } from "lucide-react"; export default function Home() { const { isAuthReady, isAiReady, loading } = useDiagnostics(); @@ -12,8 +13,16 @@ export default function Home() {
-

- Welcome to Your Agentic Coding Boilerplate +
+
+ +
+

+ Starter Kit +

+
+

+ Complete Boilerplate for AI Applications

A complete agentic coding boilerplate with authentication, database, AI @@ -23,7 +32,10 @@ export default function Home() { {/* YouTube Tutorial Video */}

-

📺 Video Tutorial

+

+

Watch the complete walkthrough of this agentic coding boilerplate:

@@ -42,25 +54,37 @@ export default function Home() {
-

🔐 Authentication

+

+ + Authentication +

Better Auth with Google OAuth integration

-

🗄️ Database

+

+ + Database +

Drizzle ORM with PostgreSQL setup

-

🤖 AI Ready

+

+ + AI Ready +

Vercel AI SDK with OpenAI integration

-

🎨 UI Components

+

+ + UI Components +

shadcn/ui with Tailwind CSS

diff --git a/src/components/setup-checklist.tsx b/src/components/setup-checklist.tsx index 1b4ab43..7530a73 100644 --- a/src/components/setup-checklist.tsx +++ b/src/components/setup-checklist.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; +import { CheckCircle2, XCircle } from "lucide-react"; type DiagnosticsResponse = { timestamp: string; @@ -30,13 +31,13 @@ type DiagnosticsResponse = { function StatusIcon({ ok }: { ok: boolean }) { return ok ? ( - - ✅ - +
+ +
) : ( - - ❌ - +
+ +
); } diff --git a/src/components/site-header.tsx b/src/components/site-header.tsx index a8bd7fa..99c4173 100644 --- a/src/components/site-header.tsx +++ b/src/components/site-header.tsx @@ -1,6 +1,7 @@ import Link from "next/link"; import { UserProfile } from "@/components/auth/user-profile"; import { ModeToggle } from "./ui/mode-toggle"; +import { Bot } from "lucide-react"; export function SiteHeader() { return ( @@ -9,9 +10,14 @@ export function SiteHeader() {

- Agentic Coding Boilerplate +
+ +
+ + Starter Kit +

diff --git a/src/components/starter-prompt-modal.tsx b/src/components/starter-prompt-modal.tsx index cf67298..e3b7c51 100644 --- a/src/components/starter-prompt-modal.tsx +++ b/src/components/starter-prompt-modal.tsx @@ -63,11 +63,11 @@ The only things to preserve are: **IMPORTANT**: When implementing any AI functionality, always use the \`OPENAI_MODEL\` environment variable for the model name instead of hardcoding it: \`\`\`typescript -// ✅ Correct - Use environment variable +// ✓ Correct - Use environment variable const model = process.env.OPENAI_MODEL || "gpt-5-mini"; model: openai(model) -// ❌ Incorrect - Don't hardcode model names +// ✗ Incorrect - Don't hardcode model names model: openai("gpt-5-mini") \`\`\` @@ -89,7 +89,7 @@ The project already includes several shadcn/ui components (button, dialog, avata Please help me transform this boilerplate into my actual application. **You MUST completely replace all existing boilerplate code** to match my project requirements. The current implementation is just temporary scaffolding that should be entirely removed and replaced. ## Final Reminder: COMPLETE REPLACEMENT REQUIRED -🚨 **IMPORTANT**: Do not preserve any of the existing boilerplate UI, components, or content. The user expects a completely fresh application that implements their requirements from scratch. Any remnants of the original boilerplate (like setup checklists, welcome screens, demo content, or placeholder navigation) indicate incomplete implementation. +**⚠️ IMPORTANT**: Do not preserve any of the existing boilerplate UI, components, or content. The user expects a completely fresh application that implements their requirements from scratch. Any remnants of the original boilerplate (like setup checklists, welcome screens, demo content, or placeholder navigation) indicate incomplete implementation. **Success Criteria**: The final application should look and function as if it was built from scratch for the specific use case, with no evidence of the original boilerplate template.