60 lines
1.6 KiB
JSON
60 lines
1.6 KiB
JSON
{
|
|
"project_type": "single",
|
|
"services": {
|
|
"frontend": {
|
|
"path": ".",
|
|
"tech_stack": ["next.js", "react", "typescript", "tailwindcss"],
|
|
"port": 3000,
|
|
"dev_command": "pnpm dev",
|
|
"build_command": "pnpm build",
|
|
"test_command": "pnpm test",
|
|
"package_manager": "pnpm"
|
|
}
|
|
},
|
|
"infrastructure": {
|
|
"docker": true,
|
|
"docker_compose": true,
|
|
"docker_port": 3003,
|
|
"database": "supabase",
|
|
"hosting": "vercel",
|
|
"ci_cd": false
|
|
},
|
|
"conventions": {
|
|
"linter": "eslint",
|
|
"formatter": "prettier",
|
|
"testing": "vitest"
|
|
},
|
|
"environment_variables": {
|
|
"NEXT_PUBLIC_SUPABASE_URL": {
|
|
"required": true,
|
|
"description": "Supabase project URL",
|
|
"example": "https://xxxxx.supabase.co"
|
|
},
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY": {
|
|
"required": true,
|
|
"description": "Supabase anonymous/public key",
|
|
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
|
},
|
|
"NEXT_PUBLIC_GA_TRACKING_ID": {
|
|
"required": false,
|
|
"description": "Google Analytics 4 tracking ID",
|
|
"example": "G-XXXXXXXXXX"
|
|
},
|
|
"NEXT_PUBLIC_SITE_URL": {
|
|
"required": true,
|
|
"description": "Production site URL",
|
|
"example": "https://damjan-savic.com"
|
|
},
|
|
"NODE_ENV": {
|
|
"required": false,
|
|
"description": "Node environment (development/production)",
|
|
"example": "production"
|
|
},
|
|
"OPENAI_API_KEY": {
|
|
"required": false,
|
|
"description": "OpenAI API key (optional, for future blog image generation features)",
|
|
"example": "sk-..."
|
|
}
|
|
}
|
|
}
|