@asynx/create-asynx-next-app 1.0.2 → 1.0.4
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/CONTRIBUTING.md +16 -15
- package/README.md +3 -6
- package/dist/cli.js +6 -6
- package/dist/constants/template.js +5 -5
- package/package.json +2 -2
- package/src/cli.ts +6 -6
- package/src/constants/template.ts +6 -6
- package/templates/{simple → advanced}/package.json +4 -0
- package/templates/{moderate → advanced}/tsconfig.json +10 -4
- package/templates/{moderate → standard}/package.json +4 -0
- package/templates/{simple → standard}/tsconfig.json +10 -4
- package/templates/{saas → starter}/package.json +4 -0
- package/templates/{saas → starter}/tsconfig.json +10 -4
- /package/templates/{moderate → advanced}/next-env.d.ts +0 -0
- /package/templates/{moderate → advanced}/src/app/globals.css +0 -0
- /package/templates/{moderate → advanced}/src/app/layout.tsx +0 -0
- /package/templates/{moderate → advanced}/src/app/page.tsx +0 -0
- /package/templates/{moderate → advanced}/utils/async.ts +0 -0
- /package/templates/{moderate → advanced}/utils/date.ts +0 -0
- /package/templates/{moderate → advanced}/utils/index.ts +0 -0
- /package/templates/{moderate → advanced}/utils/number.ts +0 -0
- /package/templates/{moderate → advanced}/utils/string.ts +0 -0
- /package/templates/{saas → standard}/next-env.d.ts +0 -0
- /package/templates/{saas → standard}/src/app/globals.css +0 -0
- /package/templates/{saas → standard}/src/app/layout.tsx +0 -0
- /package/templates/{saas → standard}/src/app/page.tsx +0 -0
- /package/templates/{saas → standard}/utils/async.ts +0 -0
- /package/templates/{saas → standard}/utils/date.ts +0 -0
- /package/templates/{saas → standard}/utils/index.ts +0 -0
- /package/templates/{saas → standard}/utils/number.ts +0 -0
- /package/templates/{saas → standard}/utils/string.ts +0 -0
- /package/templates/{simple → starter}/next-env.d.ts +0 -0
- /package/templates/{simple → starter}/src/app/globals.css +0 -0
- /package/templates/{simple → starter}/src/app/layout.tsx +0 -0
- /package/templates/{simple → starter}/src/app/page.tsx +0 -0
- /package/templates/{simple → starter}/utils/async.ts +0 -0
- /package/templates/{simple → starter}/utils/date.ts +0 -0
- /package/templates/{simple → starter}/utils/index.ts +0 -0
- /package/templates/{simple → starter}/utils/number.ts +0 -0
- /package/templates/{simple → starter}/utils/string.ts +0 -0
package/CONTRIBUTING.md
CHANGED
|
@@ -4,19 +4,17 @@ Thank you for considering contributing ❤️ We appreciate your help in making
|
|
|
4
4
|
|
|
5
5
|
We welcome contributions in the form of:
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
- 🐛 Bug fixes
|
|
8
|
+
- ✨ Template improvements
|
|
9
|
+
- 🆕 New templates
|
|
10
|
+
- 📚 Documentation improvements
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
## 🛠 Development Setup
|
|
15
15
|
|
|
16
|
-
|
|
17
16
|
To get started with development, clone the repository and install dependencies:
|
|
18
17
|
|
|
19
|
-
|
|
20
18
|
```bash
|
|
21
19
|
git clone [https://github.com/Asynx-Pvt-Ltd/create-asynx-next-app.git](https://github.com/Asynx-Pvt-Ltd/create-asynx-next-app.git)
|
|
22
20
|
cd create-asynx-next-app
|
|
@@ -28,15 +26,16 @@ pnpm dev
|
|
|
28
26
|
```
|
|
29
27
|
|
|
30
28
|
## 📦 Templates
|
|
29
|
+
|
|
31
30
|
The core project templates live in the templates/ directory:
|
|
32
31
|
|
|
33
32
|
```bash
|
|
34
33
|
templates/
|
|
35
|
-
├─
|
|
36
|
-
├─
|
|
37
|
-
└─
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
├─ starter/
|
|
35
|
+
├─ standard/
|
|
36
|
+
└─ advanced/
|
|
37
|
+
```
|
|
38
|
+
|
|
40
39
|
Each template must adhere to the following rules:
|
|
41
40
|
|
|
42
41
|
- Be a valid Next.js App Router project.
|
|
@@ -44,6 +43,7 @@ Each template must adhere to the following rules:
|
|
|
44
43
|
- Avoid external runtime dependencies on Asynx packages.
|
|
45
44
|
|
|
46
45
|
## 🧪 Testing changes
|
|
46
|
+
|
|
47
47
|
Before opening a Pull Request, please ensure your changes work by building the CLI and testing it locally:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
@@ -54,6 +54,7 @@ node dist/index.js test-app
|
|
|
54
54
|
Verify the generated application in the test-app directory runs correctly.
|
|
55
55
|
|
|
56
56
|
## 📌 Guidelines
|
|
57
|
+
|
|
57
58
|
When writing code, please follow these principles:
|
|
58
59
|
|
|
59
60
|
- Keep code readable.
|
|
@@ -63,6 +64,7 @@ When writing code, please follow these principles:
|
|
|
63
64
|
Follow the existing structure of the codebase.
|
|
64
65
|
|
|
65
66
|
## 📬 Pull Requests
|
|
67
|
+
|
|
66
68
|
When submitting a Pull Request (PR):
|
|
67
69
|
|
|
68
70
|
- Describe what you changed.
|
|
@@ -71,7 +73,6 @@ When submitting a Pull Request (PR):
|
|
|
71
73
|
|
|
72
74
|
Thanks for helping improve the project 🚀
|
|
73
75
|
|
|
74
|
-
|
|
75
76
|
## `CODE_OF_CONDUCT.md`
|
|
76
77
|
|
|
77
78
|
---
|
|
@@ -82,9 +83,9 @@ This project is governed by a standard open-source code of conduct. We are commi
|
|
|
82
83
|
|
|
83
84
|
We expect all contributors to adhere to the following guidelines:
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
- Be **respectful** of differing viewpoints and experiences.
|
|
87
|
+
- Be **inclusive** and encourage participation from everyone.
|
|
88
|
+
- Be **constructive** in all communication and feedback.
|
|
88
89
|
|
|
89
90
|
Harassment, discrimination, or abusive behavior will not be tolerated.
|
|
90
91
|
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
`create-asynx-next-app` gives you a **direction**.
|
|
8
8
|
|
|
9
|
-
This CLI scaffolds **real-world Next.js architectures** — from
|
|
9
|
+
This CLI scaffolds **real-world Next.js architectures** — from starter MVPs to
|
|
10
10
|
SaaS-grade applications — without locking you into any framework or vendor.
|
|
11
11
|
|
|
12
12
|
## Quick Start
|
|
@@ -27,14 +27,12 @@ pnpm create asynx-next-app my-app
|
|
|
27
27
|
|
|
28
28
|
During setup, you will be prompted to choose a template:
|
|
29
29
|
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
30
|
+
- **Starter** — landing pages, MVPs, small tools
|
|
31
|
+
- **Standard** — dashboards, content platforms, startups
|
|
32
32
|
- **SaaS** — scalable, domain-driven architecture for real products
|
|
33
33
|
|
|
34
34
|
Templates differ only in structure — you own all the code.
|
|
35
35
|
|
|
36
|
-
```
|
|
37
|
-
|
|
38
36
|
## No Vendor Lock-in
|
|
39
37
|
|
|
40
38
|
This tool is used **only at project creation time**.
|
|
@@ -59,4 +57,3 @@ If you find issues or have ideas:
|
|
|
59
57
|
- Reach out via https://asynx.in/contact
|
|
60
58
|
- 🐙 GitHub: https://github.com/Asynx-Pvt-Ltd/create-asynx-next-app
|
|
61
59
|
- Improvements, suggestions, and feedback are welcome
|
|
62
|
-
```
|
package/dist/cli.js
CHANGED
|
@@ -7,12 +7,12 @@ function parseArgs() {
|
|
|
7
7
|
const args = process.argv.slice(2);
|
|
8
8
|
return {
|
|
9
9
|
projectName: args[0],
|
|
10
|
-
template: args.includes('--
|
|
11
|
-
? '
|
|
12
|
-
: args.includes('--
|
|
13
|
-
? '
|
|
14
|
-
: args.includes('--
|
|
15
|
-
? '
|
|
10
|
+
template: args.includes('--starter')
|
|
11
|
+
? 'starter'
|
|
12
|
+
: args.includes('--standard')
|
|
13
|
+
? 'standard'
|
|
14
|
+
: args.includes('--advanced')
|
|
15
|
+
? 'advanced'
|
|
16
16
|
: undefined,
|
|
17
17
|
};
|
|
18
18
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export const TEMPLATES = [
|
|
2
2
|
{
|
|
3
|
-
value: '
|
|
4
|
-
title: '
|
|
3
|
+
value: 'starter',
|
|
4
|
+
title: 'Starter App',
|
|
5
5
|
description: 'Landing pages, MVPs, small tools',
|
|
6
6
|
},
|
|
7
7
|
{
|
|
8
|
-
value: '
|
|
9
|
-
title: '
|
|
8
|
+
value: 'standard',
|
|
9
|
+
title: 'Standard App',
|
|
10
10
|
description: 'Dashboards, content platforms, startups',
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
|
-
value: '
|
|
13
|
+
value: 'advanced',
|
|
14
14
|
title: 'SaaS / Complex App',
|
|
15
15
|
description: 'Multi-tenant SaaS, role-based platforms',
|
|
16
16
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asynx/create-asynx-next-app",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Opinionated Next.js App Router scaffolder by Asynx Devs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"scaffold",
|
|
21
21
|
"boilerplate",
|
|
22
22
|
"starter",
|
|
23
|
-
"
|
|
23
|
+
"advanced",
|
|
24
24
|
"mvp",
|
|
25
25
|
"asynx"
|
|
26
26
|
],
|
package/src/cli.ts
CHANGED
|
@@ -14,12 +14,12 @@ function parseArgs(): CliOptions {
|
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
projectName: args[0],
|
|
17
|
-
template: args.includes('--
|
|
18
|
-
? '
|
|
19
|
-
: args.includes('--
|
|
20
|
-
? '
|
|
21
|
-
: args.includes('--
|
|
22
|
-
? '
|
|
17
|
+
template: args.includes('--starter')
|
|
18
|
+
? 'starter'
|
|
19
|
+
: args.includes('--standard')
|
|
20
|
+
? 'standard'
|
|
21
|
+
: args.includes('--advanced')
|
|
22
|
+
? 'advanced'
|
|
23
23
|
: undefined,
|
|
24
24
|
};
|
|
25
25
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export type TemplateType = '
|
|
1
|
+
export type TemplateType = 'starter' | 'standard' | 'advanced';
|
|
2
2
|
|
|
3
3
|
export const TEMPLATES = [
|
|
4
4
|
{
|
|
5
|
-
value: '
|
|
6
|
-
title: '
|
|
5
|
+
value: 'starter',
|
|
6
|
+
title: 'Starter App',
|
|
7
7
|
description: 'Landing pages, MVPs, small tools',
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
|
-
value: '
|
|
11
|
-
title: '
|
|
10
|
+
value: 'standard',
|
|
11
|
+
title: 'Standard App',
|
|
12
12
|
description: 'Dashboards, content platforms, startups',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
value: '
|
|
15
|
+
value: 'advanced',
|
|
16
16
|
title: 'SaaS / Complex App',
|
|
17
17
|
description: 'Multi-tenant SaaS, role-based platforms',
|
|
18
18
|
},
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
"react-dom": "latest"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
+
"tailwindcss": "^3.4.0",
|
|
17
|
+
"postcss": "^8.4.0",
|
|
18
|
+
"autoprefixer": "^10.4.0",
|
|
16
19
|
"typescript": "^5.0.0",
|
|
20
|
+
"@types/node": "^20.0.0",
|
|
17
21
|
"@types/react": "^18.0.0",
|
|
18
22
|
"@types/react-dom": "^18.0.0"
|
|
19
23
|
}
|
|
@@ -5,16 +5,22 @@
|
|
|
5
5
|
"allowJs": false,
|
|
6
6
|
"skipLibCheck": true,
|
|
7
7
|
"strict": true,
|
|
8
|
-
"forceConsistentCasingInFileNames": true,
|
|
9
8
|
"noEmit": true,
|
|
10
9
|
"esModuleInterop": true,
|
|
11
10
|
"module": "esnext",
|
|
12
11
|
"moduleResolution": "bundler",
|
|
13
12
|
"resolveJsonModule": true,
|
|
14
13
|
"isolatedModules": true,
|
|
15
|
-
"jsx": "
|
|
16
|
-
"incremental": true
|
|
14
|
+
"jsx": "react-jsx",
|
|
15
|
+
"incremental": true,
|
|
16
|
+
"plugins": [{ "name": "next" }]
|
|
17
17
|
},
|
|
18
|
-
"include": [
|
|
18
|
+
"include": [
|
|
19
|
+
"next-env.d.ts",
|
|
20
|
+
"**/*.ts",
|
|
21
|
+
"**/*.tsx",
|
|
22
|
+
".next/types/**/*.ts",
|
|
23
|
+
".next/dev/types/**/*.ts"
|
|
24
|
+
],
|
|
19
25
|
"exclude": ["node_modules"]
|
|
20
26
|
}
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
"react-dom": "latest"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
+
"tailwindcss": "^3.4.0",
|
|
17
|
+
"postcss": "^8.4.0",
|
|
18
|
+
"autoprefixer": "^10.4.0",
|
|
16
19
|
"typescript": "^5.0.0",
|
|
20
|
+
"@types/node": "^20.0.0",
|
|
17
21
|
"@types/react": "^18.0.0",
|
|
18
22
|
"@types/react-dom": "^18.0.0"
|
|
19
23
|
}
|
|
@@ -5,16 +5,22 @@
|
|
|
5
5
|
"allowJs": false,
|
|
6
6
|
"skipLibCheck": true,
|
|
7
7
|
"strict": true,
|
|
8
|
-
"forceConsistentCasingInFileNames": true,
|
|
9
8
|
"noEmit": true,
|
|
10
9
|
"esModuleInterop": true,
|
|
11
10
|
"module": "esnext",
|
|
12
11
|
"moduleResolution": "bundler",
|
|
13
12
|
"resolveJsonModule": true,
|
|
14
13
|
"isolatedModules": true,
|
|
15
|
-
"jsx": "
|
|
16
|
-
"incremental": true
|
|
14
|
+
"jsx": "react-jsx",
|
|
15
|
+
"incremental": true,
|
|
16
|
+
"plugins": [{ "name": "next" }]
|
|
17
17
|
},
|
|
18
|
-
"include": [
|
|
18
|
+
"include": [
|
|
19
|
+
"next-env.d.ts",
|
|
20
|
+
"**/*.ts",
|
|
21
|
+
"**/*.tsx",
|
|
22
|
+
".next/types/**/*.ts",
|
|
23
|
+
".next/dev/types/**/*.ts"
|
|
24
|
+
],
|
|
19
25
|
"exclude": ["node_modules"]
|
|
20
26
|
}
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"react-dom": "latest"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
+
"tailwindcss": "^3.4.0",
|
|
17
|
+
"postcss": "^8.4.0",
|
|
18
|
+
"autoprefixer": "^10.4.0",
|
|
19
|
+
"@types/node": "^20.0.0",
|
|
16
20
|
"typescript": "^5.0.0",
|
|
17
21
|
"@types/react": "^18.0.0",
|
|
18
22
|
"@types/react-dom": "^18.0.0"
|
|
@@ -5,16 +5,22 @@
|
|
|
5
5
|
"allowJs": false,
|
|
6
6
|
"skipLibCheck": true,
|
|
7
7
|
"strict": true,
|
|
8
|
-
"forceConsistentCasingInFileNames": true,
|
|
9
8
|
"noEmit": true,
|
|
10
9
|
"esModuleInterop": true,
|
|
11
10
|
"module": "esnext",
|
|
12
11
|
"moduleResolution": "bundler",
|
|
13
12
|
"resolveJsonModule": true,
|
|
14
13
|
"isolatedModules": true,
|
|
15
|
-
"jsx": "
|
|
16
|
-
"incremental": true
|
|
14
|
+
"jsx": "react-jsx",
|
|
15
|
+
"incremental": true,
|
|
16
|
+
"plugins": [{ "name": "next" }]
|
|
17
17
|
},
|
|
18
|
-
"include": [
|
|
18
|
+
"include": [
|
|
19
|
+
"next-env.d.ts",
|
|
20
|
+
"**/*.ts",
|
|
21
|
+
"**/*.tsx",
|
|
22
|
+
".next/types/**/*.ts",
|
|
23
|
+
".next/dev/types/**/*.ts"
|
|
24
|
+
],
|
|
19
25
|
"exclude": ["node_modules"]
|
|
20
26
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|