create-aron-app 0.1.5 → 0.1.6

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.
Files changed (2) hide show
  1. package/README.md +73 -38
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-aron-app
2
2
 
3
- > CLI scaffolding tool for the Convex + Next.js + Clerk + Nx monorepo template.
3
+ > CLI scaffolding tool that stamps out a production-ready Nx monorepo with Convex, Clerk, and either Next.js 15 or React Router v7.
4
4
 
5
5
  ## Usage
6
6
 
@@ -14,54 +14,66 @@ bunx create-aron-app
14
14
 
15
15
  The CLI will ask a few questions and scaffold a new project:
16
16
 
17
- - **Project name** — used as the directory name
18
- - **Output directory** — where to create the project (defaults to `./<name>`)
19
- - **Package manager** — Bun, pnpm, npm, or Yarn
17
+ - **Project name** — lowercase alphanumeric + hyphens
18
+ - **Framework** — Next.js 15 (App Router) or React Router v7 (SPA/Vite)
19
+ - **Output directory** — where to create the project (defaults to `~/Desktop/<name>`)
20
+ - **Package manager** — Bun (recommended), pnpm, npm, or Yarn
20
21
  - **Install dependencies** — run install automatically
21
22
  - **Initialize git** — create an initial commit
22
23
 
23
- ## Development
24
-
25
- ### Point to your GitHub repo
24
+ ## What gets scaffolded
26
25
 
27
- Edit `src/index.ts` and update `TEMPLATE_SOURCE`:
26
+ The output is an **Nx monorepo** with two apps:
28
27
 
29
- ```ts
30
- const TEMPLATE_SOURCE = "github:YOUR_USERNAME/project-template";
28
+ ```
29
+ my-app/
30
+ ├── apps/
31
+ │ ├── api/ # Convex backend (convex-ents + Zod validation)
32
+ │ └── web/ # Next.js 15 or React Router v7 frontend
33
+ ├── shared/
34
+ │ ├── ui/ # ~20 shadcn/Radix UI components + hooks
35
+ │ ├── utils/ # Convex client helpers, date utils
36
+ │ └── assets/ # global.css (Tailwind 4)
37
+ ├── emails/ # React Email templates
38
+ ├── scripts/ # sync_convex_env.ts
39
+ ├── .cursor/ # Pre-configured Cursor AI rules and skills
40
+ └── .github/
41
+ └── workflows/ci.yml
31
42
  ```
32
43
 
33
- It uses [`giget`](https://github.com/unjs/giget) under the hood, which supports:
44
+ A working **Todos** feature is wired end-to-end as the canonical example of the data model pattern.
34
45
 
35
- | Format | Example |
36
- |--------|---------|
37
- | GitHub | `github:user/repo` |
38
- | GitHub branch | `github:user/repo#main` |
39
- | GitHub subdirectory | `github:user/repo/subdir` |
40
- | GitLab | `gitlab:user/repo` |
41
- | Bitbucket | `bitbucket:user/repo` |
46
+ ## Stack
42
47
 
43
- For local testing, you can point it at a local path instead:
48
+ - **Backend** [Convex](https://docs.convex.dev) with [`convex-ents`](https://labs.convex.dev/convex-ents) for relational modeling and Zod-validated function wrappers
49
+ - **Frontend** — [Next.js 15](https://nextjs.org) (App Router) or [React Router v7](https://reactrouter.com) (SPA/Vite)
50
+ - **Auth** — [Clerk](https://clerk.com) wired to both Convex and the frontend
51
+ - **Data fetching** — [TanStack Query v5](https://tanstack.com/query)
52
+ - **UI** — Radix UI + Tailwind CSS 4 + shared component library
53
+ - **Monorepo** — [Nx](https://nx.dev) with Bun workspaces
54
+ - **Linting** — [Biome](https://biomejs.dev)
55
+ - **AI** — Pre-baked Cursor rules and skills for the entire stack
44
56
 
45
- ```ts
46
- const TEMPLATE_SOURCE = "/absolute/path/to/project-template";
47
- ```
57
+ ## Development
48
58
 
49
59
  ### Build
50
60
 
51
61
  ```bash
52
- cd create
53
62
  bun run build
54
63
  ```
55
64
 
56
- Bundles `src/index.ts` into `dist/index.js` (a single Node.js-compatible file).
65
+ Bundles `src/index.ts` into `dist/index.js` (a single Node.js-compatible file with a shebang).
57
66
 
58
67
  ### Test locally
59
68
 
60
69
  ```bash
61
- # Run the built file directly:
70
+ # Run the CLI directly with Bun (no build needed):
71
+ bun run start
72
+
73
+ # Or build and run the output file:
62
74
  node dist/index.js
63
75
 
64
- # Or link globally for the full npm create experience:
76
+ # Or link globally for the full `npm create` experience:
65
77
  npm link
66
78
  npm create aron-app
67
79
 
@@ -69,23 +81,46 @@ npm create aron-app
69
81
  npm unlink -g create-aron-app
70
82
  ```
71
83
 
72
- ### Publish to npm
84
+ ### Publish
73
85
 
74
86
  ```bash
87
+ # Patch release (bumps version + publishes):
88
+ npm run release
89
+
90
+ # Or manually:
75
91
  npm publish --access public
76
92
  ```
77
93
 
78
- ## What happens after scaffolding
94
+ Publishing is also automated via GitHub Actions — creating a GitHub Release triggers `.github/workflows/publish.yml`, which builds and publishes to npm.
79
95
 
80
- 1. Template is downloaded from GitHub (no git history)
81
- 2. Optionally: `git init` + initial commit
82
- 3. Optionally: `bun install` (or your chosen package manager)
96
+ ### Project structure
83
97
 
84
- ## Stack
98
+ ```
99
+ create-aron-app/
100
+ ├── src/
101
+ │ ├── index.ts # CLI entrypoint (prompts + orchestration)
102
+ │ ├── types.ts # Shared TS types
103
+ │ └── utils/
104
+ │ ├── constant.ts # Framework/PM options + dependency lists
105
+ │ └── helpers.ts # File ops, template merging helpers
106
+ ├── templates/
107
+ │ ├── _base/ # Shared monorepo skeleton (copied first)
108
+ │ ├── nextjs/ # Next.js 15 App Router variant
109
+ │ └── react-router/ # React Router v7 SPA variant
110
+ ├── dist/ # Built CLI output
111
+ └── .github/
112
+ └── workflows/
113
+ └── publish.yml # Auto-publish on GitHub Release
114
+ ```
85
115
 
86
- - **Backend** [Convex](https://docs.convex.dev) with `convex-ents` for relational modeling
87
- - **Frontend** — [Next.js 15](https://nextjs.org) (App Router) + [TanStack Query](https://tanstack.com/query)
88
- - **Auth** [Clerk](https://clerk.com)
89
- - **UI** Radix UI + Tailwind CSS 4 + custom component library
90
- - **Monorepo** [Nx](https://nx.dev) with Bun workspaces
91
- - **Linting** [Biome](https://biomejs.dev)
116
+ ### How scaffolding works
117
+
118
+ 1. Copy `templates/_base/` into the output directory
119
+ 2. Copy the framework-specific template into `apps/web/`
120
+ 3. Rename `_gitignore` files to `.gitignore` (npm strips dotfiles on publish)
121
+ 4. Merge framework deps into the root `package.json`
122
+ 5. Inject the right Nx plugins into `nx.json`
123
+ 6. Replace the `project:` placeholder with the actual project name in all `project.json` files
124
+ 7. Promote `apps/web/.env.example` to the root as `.env.example`
125
+ 8. Optionally: `git init` + initial commit
126
+ 9. Optionally: `<pm> install`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-aron-app",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Scaffold a new Convex + Next.js + Clerk full-stack project",
5
5
  "license": "MIT",
6
6
  "type": "module",