@stackweld/templates 0.2.0 → 0.3.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/LICENSE +21 -0
- package/README.md +57 -0
- package/package.json +17 -11
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-lint.log +0 -694
- package/.turbo/turbo-test.log +0 -15
- package/.turbo/turbo-typecheck.log +0 -4
- package/dist/__tests__/templates.test.d.ts.map +0 -1
- package/dist/__tests__/templates.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/templates/astro-landing.d.ts.map +0 -1
- package/dist/templates/astro-landing.js.map +0 -1
- package/dist/templates/django-react.d.ts.map +0 -1
- package/dist/templates/django-react.js.map +0 -1
- package/dist/templates/django-rest-api.d.ts.map +0 -1
- package/dist/templates/django-rest-api.js.map +0 -1
- package/dist/templates/express-api.d.ts.map +0 -1
- package/dist/templates/express-api.js.map +0 -1
- package/dist/templates/fastapi-react.d.ts.map +0 -1
- package/dist/templates/fastapi-react.js.map +0 -1
- package/dist/templates/go-microservice.d.ts.map +0 -1
- package/dist/templates/go-microservice.js.map +0 -1
- package/dist/templates/hono-microservice.d.ts.map +0 -1
- package/dist/templates/hono-microservice.js.map +0 -1
- package/dist/templates/htmx-django.d.ts.map +0 -1
- package/dist/templates/htmx-django.js.map +0 -1
- package/dist/templates/laravel-app.d.ts.map +0 -1
- package/dist/templates/laravel-app.js.map +0 -1
- package/dist/templates/mern-stack.d.ts.map +0 -1
- package/dist/templates/mern-stack.js.map +0 -1
- package/dist/templates/monorepo-starter.d.ts.map +0 -1
- package/dist/templates/monorepo-starter.js.map +0 -1
- package/dist/templates/nestjs-api.d.ts.map +0 -1
- package/dist/templates/nestjs-api.js.map +0 -1
- package/dist/templates/nuxt3-app.d.ts.map +0 -1
- package/dist/templates/nuxt3-app.js.map +0 -1
- package/dist/templates/python-ai-lab.d.ts.map +0 -1
- package/dist/templates/python-ai-lab.js.map +0 -1
- package/dist/templates/remix-fullstack.d.ts.map +0 -1
- package/dist/templates/remix-fullstack.js.map +0 -1
- package/dist/templates/saas-starter.d.ts.map +0 -1
- package/dist/templates/saas-starter.js.map +0 -1
- package/dist/templates/solidstart-app.d.ts.map +0 -1
- package/dist/templates/solidstart-app.js.map +0 -1
- package/dist/templates/sveltekit-fullstack.d.ts.map +0 -1
- package/dist/templates/sveltekit-fullstack.js.map +0 -1
- package/dist/templates/t3-stack.d.ts.map +0 -1
- package/dist/templates/t3-stack.js.map +0 -1
- package/dist/templates/tauri-desktop.d.ts.map +0 -1
- package/dist/templates/tauri-desktop.js.map +0 -1
- package/src/__tests__/templates.test.ts +0 -98
- package/src/index.ts +0 -97
- package/src/templates/astro-landing.ts +0 -40
- package/src/templates/django-react.ts +0 -127
- package/src/templates/django-rest-api.ts +0 -99
- package/src/templates/express-api.ts +0 -147
- package/src/templates/fastapi-react.ts +0 -122
- package/src/templates/go-microservice.ts +0 -133
- package/src/templates/hono-microservice.ts +0 -81
- package/src/templates/htmx-django.ts +0 -100
- package/src/templates/laravel-app.ts +0 -96
- package/src/templates/mern-stack.ts +0 -126
- package/src/templates/monorepo-starter.ts +0 -138
- package/src/templates/nestjs-api.ts +0 -112
- package/src/templates/nuxt3-app.ts +0 -78
- package/src/templates/python-ai-lab.ts +0 -155
- package/src/templates/remix-fullstack.ts +0 -80
- package/src/templates/saas-starter.ts +0 -131
- package/src/templates/solidstart-app.ts +0 -73
- package/src/templates/sveltekit-fullstack.ts +0 -90
- package/src/templates/t3-stack.ts +0 -94
- package/src/templates/tauri-desktop.ts +0 -57
- package/tsconfig.json +0 -10
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const pythonAiLab: Template = {
|
|
4
|
-
id: "python-ai-lab",
|
|
5
|
-
name: "Python AI Lab",
|
|
6
|
-
description: "Python ML/AI development environment with FastAPI, PostgreSQL, Redis, and Docker",
|
|
7
|
-
technologyIds: ["python", "fastapi", "postgresql", "redis", "docker"],
|
|
8
|
-
profile: "production",
|
|
9
|
-
scaffoldSteps: [
|
|
10
|
-
{
|
|
11
|
-
name: "Create project structure",
|
|
12
|
-
command:
|
|
13
|
-
"mkdir -p {{projectName}}/{app/{api,models,services,ml},tests,notebooks,data/{raw,processed}}",
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
name: "Setup Python virtual environment",
|
|
17
|
-
command: "python3 -m venv {{projectName}}/.venv",
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: "Install dependencies",
|
|
21
|
-
command:
|
|
22
|
-
"{{projectName}}/.venv/bin/pip install fastapi uvicorn[standard] sqlalchemy[asyncio] asyncpg redis python-dotenv pydantic-settings alembic",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "Install ML dependencies",
|
|
26
|
-
command: "{{projectName}}/.venv/bin/pip install numpy pandas scikit-learn jupyter matplotlib",
|
|
27
|
-
},
|
|
28
|
-
],
|
|
29
|
-
overrides: [
|
|
30
|
-
{
|
|
31
|
-
path: ".env.example",
|
|
32
|
-
content: [
|
|
33
|
-
"# API",
|
|
34
|
-
"APP_HOST=0.0.0.0",
|
|
35
|
-
"APP_PORT=8000",
|
|
36
|
-
"APP_ENV=development",
|
|
37
|
-
"",
|
|
38
|
-
"# Database",
|
|
39
|
-
"DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/{{projectName}}",
|
|
40
|
-
"",
|
|
41
|
-
"# Redis",
|
|
42
|
-
"REDIS_URL=redis://localhost:6379",
|
|
43
|
-
"",
|
|
44
|
-
"# ML",
|
|
45
|
-
"MODEL_PATH=./data/models",
|
|
46
|
-
"OPENAI_API_KEY=sk-...",
|
|
47
|
-
].join("\n"),
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
path: "docker-compose.yml",
|
|
51
|
-
content: [
|
|
52
|
-
"services:",
|
|
53
|
-
" db:",
|
|
54
|
-
" image: postgres:17",
|
|
55
|
-
" restart: unless-stopped",
|
|
56
|
-
" ports:",
|
|
57
|
-
' - "5432:5432"',
|
|
58
|
-
" environment:",
|
|
59
|
-
" POSTGRES_USER: postgres",
|
|
60
|
-
" POSTGRES_PASSWORD: postgres",
|
|
61
|
-
" POSTGRES_DB: {{projectName}}",
|
|
62
|
-
" volumes:",
|
|
63
|
-
" - pgdata:/var/lib/postgresql/data",
|
|
64
|
-
" healthcheck:",
|
|
65
|
-
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
66
|
-
" interval: 5s",
|
|
67
|
-
" timeout: 5s",
|
|
68
|
-
" retries: 5",
|
|
69
|
-
"",
|
|
70
|
-
" redis:",
|
|
71
|
-
" image: redis:7-alpine",
|
|
72
|
-
" restart: unless-stopped",
|
|
73
|
-
" ports:",
|
|
74
|
-
' - "6379:6379"',
|
|
75
|
-
" healthcheck:",
|
|
76
|
-
' test: ["CMD", "redis-cli", "ping"]',
|
|
77
|
-
" interval: 5s",
|
|
78
|
-
" timeout: 5s",
|
|
79
|
-
" retries: 5",
|
|
80
|
-
"",
|
|
81
|
-
"volumes:",
|
|
82
|
-
" pgdata:",
|
|
83
|
-
].join("\n"),
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
path: "requirements.txt",
|
|
87
|
-
content: [
|
|
88
|
-
"fastapi>=0.115",
|
|
89
|
-
"uvicorn[standard]>=0.32",
|
|
90
|
-
"sqlalchemy[asyncio]>=2.0",
|
|
91
|
-
"asyncpg>=0.30",
|
|
92
|
-
"redis>=5.0",
|
|
93
|
-
"python-dotenv>=1.0",
|
|
94
|
-
"pydantic-settings>=2.0",
|
|
95
|
-
"alembic>=1.14",
|
|
96
|
-
"numpy>=2.0",
|
|
97
|
-
"pandas>=2.2",
|
|
98
|
-
"scikit-learn>=1.5",
|
|
99
|
-
"jupyter>=1.1",
|
|
100
|
-
"matplotlib>=3.9",
|
|
101
|
-
].join("\n"),
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
path: "app/__init__.py",
|
|
105
|
-
content: "",
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
path: "app/main.py",
|
|
109
|
-
content: [
|
|
110
|
-
"from fastapi import FastAPI",
|
|
111
|
-
"from dotenv import load_dotenv",
|
|
112
|
-
"",
|
|
113
|
-
"load_dotenv()",
|
|
114
|
-
"",
|
|
115
|
-
'app = FastAPI(title="{{projectName}}", version="0.1.0")',
|
|
116
|
-
"",
|
|
117
|
-
"",
|
|
118
|
-
'@app.get("/health")',
|
|
119
|
-
"async def health():",
|
|
120
|
-
' return {"status": "ok"}',
|
|
121
|
-
].join("\n"),
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
path: "Dockerfile",
|
|
125
|
-
content: [
|
|
126
|
-
"FROM python:3.12-slim",
|
|
127
|
-
"WORKDIR /app",
|
|
128
|
-
"COPY requirements.txt .",
|
|
129
|
-
"RUN pip install --no-cache-dir -r requirements.txt",
|
|
130
|
-
"COPY . .",
|
|
131
|
-
"EXPOSE 8000",
|
|
132
|
-
'CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]',
|
|
133
|
-
].join("\n"),
|
|
134
|
-
},
|
|
135
|
-
],
|
|
136
|
-
hooks: [
|
|
137
|
-
{
|
|
138
|
-
timing: "post-scaffold",
|
|
139
|
-
name: "Freeze requirements",
|
|
140
|
-
command: "cd {{projectName}} && .venv/bin/pip freeze > requirements.lock",
|
|
141
|
-
description: "Generate locked requirements file",
|
|
142
|
-
requiresConfirmation: false,
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
timing: "post-scaffold",
|
|
146
|
-
name: "Initialize Alembic",
|
|
147
|
-
command: "cd {{projectName}} && .venv/bin/alembic init alembic",
|
|
148
|
-
description: "Initialize Alembic for database migrations",
|
|
149
|
-
requiresConfirmation: false,
|
|
150
|
-
},
|
|
151
|
-
],
|
|
152
|
-
variables: {
|
|
153
|
-
projectName: "my-ai-lab",
|
|
154
|
-
},
|
|
155
|
-
};
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const remixFullstack: Template = {
|
|
4
|
-
id: "remix-fullstack",
|
|
5
|
-
name: "Remix Fullstack",
|
|
6
|
-
description: "Full-stack Remix app with Prisma, PostgreSQL, Tailwind CSS, and TypeScript",
|
|
7
|
-
technologyIds: ["remix", "react", "nodejs", "typescript", "tailwindcss", "prisma", "postgresql"],
|
|
8
|
-
profile: "standard",
|
|
9
|
-
scaffoldSteps: [
|
|
10
|
-
{
|
|
11
|
-
name: "Create Remix project",
|
|
12
|
-
command: "npx create-remix@latest {{projectName}} --yes",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: "Install Prisma",
|
|
16
|
-
command: "cd {{projectName}} && npm install prisma @prisma/client",
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: "Initialize Prisma",
|
|
20
|
-
command: "cd {{projectName}} && npx prisma init --datasource-provider postgresql",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "Install Tailwind",
|
|
24
|
-
command: "cd {{projectName}} && npm install -D tailwindcss @tailwindcss/vite",
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
overrides: [
|
|
28
|
-
{
|
|
29
|
-
path: ".env.example",
|
|
30
|
-
content: [
|
|
31
|
-
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
32
|
-
"SESSION_SECRET=your-secret-key-change-me",
|
|
33
|
-
].join("\n"),
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
path: "docker-compose.yml",
|
|
37
|
-
content: [
|
|
38
|
-
"services:",
|
|
39
|
-
" db:",
|
|
40
|
-
" image: postgres:17",
|
|
41
|
-
" restart: unless-stopped",
|
|
42
|
-
" ports:",
|
|
43
|
-
' - "5432:5432"',
|
|
44
|
-
" environment:",
|
|
45
|
-
" POSTGRES_USER: postgres",
|
|
46
|
-
" POSTGRES_PASSWORD: postgres",
|
|
47
|
-
" POSTGRES_DB: {{projectName}}",
|
|
48
|
-
" volumes:",
|
|
49
|
-
" - pgdata:/var/lib/postgresql/data",
|
|
50
|
-
" healthcheck:",
|
|
51
|
-
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
52
|
-
" interval: 5s",
|
|
53
|
-
" timeout: 5s",
|
|
54
|
-
" retries: 5",
|
|
55
|
-
"",
|
|
56
|
-
"volumes:",
|
|
57
|
-
" pgdata:",
|
|
58
|
-
].join("\n"),
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
hooks: [
|
|
62
|
-
{
|
|
63
|
-
timing: "post-scaffold",
|
|
64
|
-
name: "Install dependencies",
|
|
65
|
-
command: "cd {{projectName}} && npm install",
|
|
66
|
-
description: "Install all npm dependencies",
|
|
67
|
-
requiresConfirmation: false,
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
timing: "post-scaffold",
|
|
71
|
-
name: "Generate Prisma client",
|
|
72
|
-
command: "cd {{projectName}} && npx prisma generate",
|
|
73
|
-
description: "Generate the Prisma client from schema",
|
|
74
|
-
requiresConfirmation: false,
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
variables: {
|
|
78
|
-
projectName: "my-remix-app",
|
|
79
|
-
},
|
|
80
|
-
};
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const saasStarter: Template = {
|
|
4
|
-
id: "saas-starter",
|
|
5
|
-
name: "SaaS Starter",
|
|
6
|
-
description:
|
|
7
|
-
"Production-ready SaaS boilerplate with Next.js, Prisma, PostgreSQL, Redis, NextAuth, shadcn/ui, and Stripe-ready architecture",
|
|
8
|
-
technologyIds: [
|
|
9
|
-
"nextjs",
|
|
10
|
-
"react",
|
|
11
|
-
"nodejs",
|
|
12
|
-
"typescript",
|
|
13
|
-
"tailwindcss",
|
|
14
|
-
"shadcn-ui",
|
|
15
|
-
"prisma",
|
|
16
|
-
"postgresql",
|
|
17
|
-
"redis",
|
|
18
|
-
"nextauth",
|
|
19
|
-
],
|
|
20
|
-
profile: "production",
|
|
21
|
-
scaffoldSteps: [
|
|
22
|
-
{
|
|
23
|
-
name: "Create Next.js app",
|
|
24
|
-
command:
|
|
25
|
-
"npx create-next-app@latest {{projectName}} --typescript --tailwind --eslint --app --src-dir --import-alias '@/*'",
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: "Install Prisma",
|
|
29
|
-
command: "cd {{projectName}} && npm install prisma @prisma/client",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: "Initialize Prisma",
|
|
33
|
-
command: "cd {{projectName}} && npx prisma init --datasource-provider postgresql",
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: "Install NextAuth",
|
|
37
|
-
command: "cd {{projectName}} && npm install next-auth@beta",
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: "Install Redis client",
|
|
41
|
-
command: "cd {{projectName}} && npm install ioredis",
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: "Initialize shadcn/ui",
|
|
45
|
-
command: "cd {{projectName}} && npx shadcn@latest init -d",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "Install Stripe",
|
|
49
|
-
command: "cd {{projectName}} && npm install stripe @stripe/stripe-js",
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
overrides: [
|
|
53
|
-
{
|
|
54
|
-
path: ".env.example",
|
|
55
|
-
content: [
|
|
56
|
-
"# Database",
|
|
57
|
-
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
58
|
-
"",
|
|
59
|
-
"# Redis",
|
|
60
|
-
"REDIS_URL=redis://localhost:6379",
|
|
61
|
-
"",
|
|
62
|
-
"# Auth",
|
|
63
|
-
"NEXTAUTH_SECRET=your-secret-key-change-me",
|
|
64
|
-
"NEXTAUTH_URL=http://localhost:3000",
|
|
65
|
-
"",
|
|
66
|
-
"# Stripe",
|
|
67
|
-
"STRIPE_SECRET_KEY=sk_test_...",
|
|
68
|
-
"STRIPE_PUBLISHABLE_KEY=pk_test_...",
|
|
69
|
-
"STRIPE_WEBHOOK_SECRET=whsec_...",
|
|
70
|
-
"",
|
|
71
|
-
"# App",
|
|
72
|
-
"NEXT_PUBLIC_APP_URL=http://localhost:3000",
|
|
73
|
-
].join("\n"),
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
path: "docker-compose.yml",
|
|
77
|
-
content: [
|
|
78
|
-
"services:",
|
|
79
|
-
" db:",
|
|
80
|
-
" image: postgres:17",
|
|
81
|
-
" restart: unless-stopped",
|
|
82
|
-
" ports:",
|
|
83
|
-
' - "5432:5432"',
|
|
84
|
-
" environment:",
|
|
85
|
-
" POSTGRES_USER: postgres",
|
|
86
|
-
" POSTGRES_PASSWORD: postgres",
|
|
87
|
-
" POSTGRES_DB: {{projectName}}",
|
|
88
|
-
" volumes:",
|
|
89
|
-
" - pgdata:/var/lib/postgresql/data",
|
|
90
|
-
" healthcheck:",
|
|
91
|
-
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
92
|
-
" interval: 5s",
|
|
93
|
-
" timeout: 5s",
|
|
94
|
-
" retries: 5",
|
|
95
|
-
"",
|
|
96
|
-
" redis:",
|
|
97
|
-
" image: redis:7-alpine",
|
|
98
|
-
" restart: unless-stopped",
|
|
99
|
-
" ports:",
|
|
100
|
-
' - "6379:6379"',
|
|
101
|
-
" healthcheck:",
|
|
102
|
-
' test: ["CMD", "redis-cli", "ping"]',
|
|
103
|
-
" interval: 5s",
|
|
104
|
-
" timeout: 5s",
|
|
105
|
-
" retries: 5",
|
|
106
|
-
"",
|
|
107
|
-
"volumes:",
|
|
108
|
-
" pgdata:",
|
|
109
|
-
].join("\n"),
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
hooks: [
|
|
113
|
-
{
|
|
114
|
-
timing: "post-scaffold",
|
|
115
|
-
name: "Generate Prisma client",
|
|
116
|
-
command: "cd {{projectName}} && npx prisma generate",
|
|
117
|
-
description: "Generate the Prisma client from schema",
|
|
118
|
-
requiresConfirmation: false,
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
timing: "post-scaffold",
|
|
122
|
-
name: "Install dependencies",
|
|
123
|
-
command: "cd {{projectName}} && npm install",
|
|
124
|
-
description: "Install all npm dependencies",
|
|
125
|
-
requiresConfirmation: false,
|
|
126
|
-
},
|
|
127
|
-
],
|
|
128
|
-
variables: {
|
|
129
|
-
projectName: "my-saas-app",
|
|
130
|
-
},
|
|
131
|
-
};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const solidstartApp: Template = {
|
|
4
|
-
id: "solidstart-app",
|
|
5
|
-
name: "SolidStart App",
|
|
6
|
-
description: "Full-stack SolidStart application with TypeScript, Tailwind CSS, and PostgreSQL",
|
|
7
|
-
technologyIds: ["solidjs", "nodejs", "typescript", "tailwindcss", "postgresql"],
|
|
8
|
-
profile: "standard",
|
|
9
|
-
scaffoldSteps: [
|
|
10
|
-
{
|
|
11
|
-
name: "Create SolidStart project",
|
|
12
|
-
command: "mkdir -p {{projectName}} && cd {{projectName}} && npm init solid@latest . -- --yes",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: "Install Tailwind",
|
|
16
|
-
command: "cd {{projectName}} && npm install -D tailwindcss @tailwindcss/vite",
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: "Install PostgreSQL client",
|
|
20
|
-
command: "cd {{projectName}} && npm install postgres",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "Install dotenv",
|
|
24
|
-
command: "cd {{projectName}} && npm install dotenv",
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
overrides: [
|
|
28
|
-
{
|
|
29
|
-
path: ".env.example",
|
|
30
|
-
content: [
|
|
31
|
-
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
32
|
-
"SESSION_SECRET=your-secret-key-change-me",
|
|
33
|
-
].join("\n"),
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
path: "docker-compose.yml",
|
|
37
|
-
content: [
|
|
38
|
-
"services:",
|
|
39
|
-
" db:",
|
|
40
|
-
" image: postgres:17",
|
|
41
|
-
" restart: unless-stopped",
|
|
42
|
-
" ports:",
|
|
43
|
-
' - "5432:5432"',
|
|
44
|
-
" environment:",
|
|
45
|
-
" POSTGRES_USER: postgres",
|
|
46
|
-
" POSTGRES_PASSWORD: postgres",
|
|
47
|
-
" POSTGRES_DB: {{projectName}}",
|
|
48
|
-
" volumes:",
|
|
49
|
-
" - pgdata:/var/lib/postgresql/data",
|
|
50
|
-
" healthcheck:",
|
|
51
|
-
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
52
|
-
" interval: 5s",
|
|
53
|
-
" timeout: 5s",
|
|
54
|
-
" retries: 5",
|
|
55
|
-
"",
|
|
56
|
-
"volumes:",
|
|
57
|
-
" pgdata:",
|
|
58
|
-
].join("\n"),
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
hooks: [
|
|
62
|
-
{
|
|
63
|
-
timing: "post-scaffold",
|
|
64
|
-
name: "Install dependencies",
|
|
65
|
-
command: "cd {{projectName}} && npm install",
|
|
66
|
-
description: "Install all npm dependencies",
|
|
67
|
-
requiresConfirmation: false,
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
variables: {
|
|
71
|
-
projectName: "my-solidstart-app",
|
|
72
|
-
},
|
|
73
|
-
};
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const sveltekitFullstack: Template = {
|
|
4
|
-
id: "sveltekit-fullstack",
|
|
5
|
-
name: "SvelteKit Full-Stack",
|
|
6
|
-
description: "Full-stack SvelteKit app with Prisma ORM, PostgreSQL, and Tailwind CSS",
|
|
7
|
-
technologyIds: [
|
|
8
|
-
"sveltekit",
|
|
9
|
-
"svelte",
|
|
10
|
-
"nodejs",
|
|
11
|
-
"typescript",
|
|
12
|
-
"tailwindcss",
|
|
13
|
-
"prisma",
|
|
14
|
-
"postgresql",
|
|
15
|
-
],
|
|
16
|
-
profile: "standard",
|
|
17
|
-
scaffoldSteps: [
|
|
18
|
-
{
|
|
19
|
-
name: "Create SvelteKit project",
|
|
20
|
-
command: "npx sv create {{projectName}} --template minimal --types ts",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "Install Tailwind CSS",
|
|
24
|
-
command: "cd {{projectName}} && npx sv add tailwindcss",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "Install Prisma",
|
|
28
|
-
command: "npm install prisma @prisma/client",
|
|
29
|
-
workingDir: "{{projectName}}",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: "Initialize Prisma",
|
|
33
|
-
command: "npx prisma init --datasource-provider postgresql",
|
|
34
|
-
workingDir: "{{projectName}}",
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
overrides: [
|
|
38
|
-
{
|
|
39
|
-
path: ".env.example",
|
|
40
|
-
content: [
|
|
41
|
-
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
42
|
-
"PUBLIC_APP_NAME={{projectName}}",
|
|
43
|
-
].join("\n"),
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
path: "docker-compose.yml",
|
|
47
|
-
content: [
|
|
48
|
-
"services:",
|
|
49
|
-
" db:",
|
|
50
|
-
" image: postgres:17",
|
|
51
|
-
" restart: unless-stopped",
|
|
52
|
-
" ports:",
|
|
53
|
-
' - "5432:5432"',
|
|
54
|
-
" environment:",
|
|
55
|
-
" POSTGRES_USER: postgres",
|
|
56
|
-
" POSTGRES_PASSWORD: postgres",
|
|
57
|
-
" POSTGRES_DB: {{projectName}}",
|
|
58
|
-
" volumes:",
|
|
59
|
-
" - pgdata:/var/lib/postgresql/data",
|
|
60
|
-
" healthcheck:",
|
|
61
|
-
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
62
|
-
" interval: 5s",
|
|
63
|
-
" timeout: 5s",
|
|
64
|
-
" retries: 5",
|
|
65
|
-
"",
|
|
66
|
-
"volumes:",
|
|
67
|
-
" pgdata:",
|
|
68
|
-
].join("\n"),
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
hooks: [
|
|
72
|
-
{
|
|
73
|
-
timing: "post-scaffold",
|
|
74
|
-
name: "Install dependencies",
|
|
75
|
-
command: "cd {{projectName}} && npm install",
|
|
76
|
-
description: "Install all npm dependencies",
|
|
77
|
-
requiresConfirmation: false,
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
timing: "post-scaffold",
|
|
81
|
-
name: "Generate Prisma client",
|
|
82
|
-
command: "cd {{projectName}} && npx prisma generate",
|
|
83
|
-
description: "Generate the Prisma client from schema",
|
|
84
|
-
requiresConfirmation: false,
|
|
85
|
-
},
|
|
86
|
-
],
|
|
87
|
-
variables: {
|
|
88
|
-
projectName: "my-sveltekit-app",
|
|
89
|
-
},
|
|
90
|
-
};
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const t3Stack: Template = {
|
|
4
|
-
id: "t3-stack",
|
|
5
|
-
name: "T3 Stack",
|
|
6
|
-
description: "Full-stack TypeScript app with Next.js, tRPC, Prisma, Tailwind CSS, and NextAuth",
|
|
7
|
-
technologyIds: [
|
|
8
|
-
"nextjs",
|
|
9
|
-
"react",
|
|
10
|
-
"nodejs",
|
|
11
|
-
"typescript",
|
|
12
|
-
"tailwindcss",
|
|
13
|
-
"prisma",
|
|
14
|
-
"postgresql",
|
|
15
|
-
"nextauth",
|
|
16
|
-
],
|
|
17
|
-
profile: "standard",
|
|
18
|
-
scaffoldSteps: [
|
|
19
|
-
{
|
|
20
|
-
name: "Create Next.js app",
|
|
21
|
-
command:
|
|
22
|
-
"npx create-next-app@latest {{projectName}} --typescript --tailwind --eslint --app --src-dir --import-alias '@/*'",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "Install Prisma",
|
|
26
|
-
command: "npm install prisma @prisma/client",
|
|
27
|
-
workingDir: "{{projectName}}",
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
name: "Initialize Prisma",
|
|
31
|
-
command: "npx prisma init --datasource-provider postgresql",
|
|
32
|
-
workingDir: "{{projectName}}",
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: "Install NextAuth",
|
|
36
|
-
command: "npm install next-auth@beta",
|
|
37
|
-
workingDir: "{{projectName}}",
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
overrides: [
|
|
41
|
-
{
|
|
42
|
-
path: ".env.example",
|
|
43
|
-
content: [
|
|
44
|
-
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
45
|
-
"NEXTAUTH_SECRET=your-secret-key-change-me",
|
|
46
|
-
"NEXTAUTH_URL=http://localhost:3000",
|
|
47
|
-
].join("\n"),
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
path: "docker-compose.yml",
|
|
51
|
-
content: [
|
|
52
|
-
"services:",
|
|
53
|
-
" db:",
|
|
54
|
-
" image: postgres:17",
|
|
55
|
-
" restart: unless-stopped",
|
|
56
|
-
" ports:",
|
|
57
|
-
' - "5432:5432"',
|
|
58
|
-
" environment:",
|
|
59
|
-
" POSTGRES_USER: postgres",
|
|
60
|
-
" POSTGRES_PASSWORD: postgres",
|
|
61
|
-
" POSTGRES_DB: {{projectName}}",
|
|
62
|
-
" volumes:",
|
|
63
|
-
" - pgdata:/var/lib/postgresql/data",
|
|
64
|
-
" healthcheck:",
|
|
65
|
-
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
66
|
-
" interval: 5s",
|
|
67
|
-
" timeout: 5s",
|
|
68
|
-
" retries: 5",
|
|
69
|
-
"",
|
|
70
|
-
"volumes:",
|
|
71
|
-
" pgdata:",
|
|
72
|
-
].join("\n"),
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
hooks: [
|
|
76
|
-
{
|
|
77
|
-
timing: "post-scaffold",
|
|
78
|
-
name: "Install dependencies",
|
|
79
|
-
command: "cd {{projectName}} && npm install",
|
|
80
|
-
description: "Install all npm dependencies",
|
|
81
|
-
requiresConfirmation: false,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
timing: "post-scaffold",
|
|
85
|
-
name: "Generate Prisma client",
|
|
86
|
-
command: "cd {{projectName}} && npx prisma generate",
|
|
87
|
-
description: "Generate the Prisma client from schema",
|
|
88
|
-
requiresConfirmation: false,
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
variables: {
|
|
92
|
-
projectName: "my-t3-app",
|
|
93
|
-
},
|
|
94
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { Template } from "@stackweld/core";
|
|
2
|
-
|
|
3
|
-
export const tauriDesktop: Template = {
|
|
4
|
-
id: "tauri-desktop",
|
|
5
|
-
name: "Tauri Desktop",
|
|
6
|
-
description: "Cross-platform desktop app with Tauri, React, TypeScript, Tailwind CSS, and SQLite",
|
|
7
|
-
technologyIds: ["react", "nodejs", "typescript", "tailwindcss", "sqlite"],
|
|
8
|
-
profile: "standard",
|
|
9
|
-
scaffoldSteps: [
|
|
10
|
-
{
|
|
11
|
-
name: "Create Vite + React project",
|
|
12
|
-
command: "npx create-vite@latest {{projectName}} -- --template react-ts",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: "Install Tailwind",
|
|
16
|
-
command: "cd {{projectName}} && npm install -D tailwindcss @tailwindcss/vite",
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: "Install Tauri CLI",
|
|
20
|
-
command: "cd {{projectName}} && npm install -D @tauri-apps/cli",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "Install Tauri API",
|
|
24
|
-
command: "cd {{projectName}} && npm install @tauri-apps/api",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "Initialize Tauri",
|
|
28
|
-
command:
|
|
29
|
-
"cd {{projectName}} && npx tauri init --app-name {{projectName}} --window-title {{projectName}} --dist-dir ../dist --dev-path http://localhost:5173 --ci",
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
overrides: [
|
|
33
|
-
{
|
|
34
|
-
path: ".env.example",
|
|
35
|
-
content: ["VITE_APP_NAME={{projectName}}", "VITE_APP_VERSION=0.1.0"].join("\n"),
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
hooks: [
|
|
39
|
-
{
|
|
40
|
-
timing: "post-scaffold",
|
|
41
|
-
name: "Install dependencies",
|
|
42
|
-
command: "cd {{projectName}} && npm install",
|
|
43
|
-
description: "Install all npm dependencies",
|
|
44
|
-
requiresConfirmation: false,
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
timing: "post-scaffold",
|
|
48
|
-
name: "Verify Rust toolchain",
|
|
49
|
-
command: "rustup show",
|
|
50
|
-
description: "Verify Rust is installed (required by Tauri)",
|
|
51
|
-
requiresConfirmation: true,
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
variables: {
|
|
55
|
-
projectName: "my-tauri-app",
|
|
56
|
-
},
|
|
57
|
-
};
|