@bleedingdev/modern-js-main-doc 3.2.0-ultramodern.116 → 3.2.0-ultramodern.118
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.
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
UltraModern.js provides the BleedingDev create package to create
|
|
1
|
+
UltraModern.js provides the BleedingDev create package to create SuperApp
|
|
2
|
+
workspaces. It does not require global installation and can be run on-demand
|
|
3
|
+
using `pnpm dlx`.
|
|
2
4
|
|
|
3
5
|
You can initialize the empty directory you are already in:
|
|
4
6
|
|
|
@@ -10,33 +12,13 @@ pnpm dlx @bleedingdev/modern-js-create .
|
|
|
10
12
|
You can also create a project directly in a new directory:
|
|
11
13
|
|
|
12
14
|
```bash
|
|
13
|
-
pnpm dlx @bleedingdev/modern-js-create
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
TanStack Router is scaffolded by default. To force React Router compatibility:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
pnpm dlx @bleedingdev/modern-js-create myapp --router react-router
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Tailwind CSS v4 is scaffolded by default. To opt out:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
pnpm dlx @bleedingdev/modern-js-create myapp --no-tailwind
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Effect HttpApi BFF is scaffolded by default.
|
|
29
|
-
|
|
30
|
-
To initialize BFF scaffold with Hono runtime:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
pnpm dlx @bleedingdev/modern-js-create myapp --bff-runtime hono
|
|
15
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app
|
|
34
16
|
```
|
|
35
17
|
|
|
36
18
|
To initialize with workspace protocol dependencies (for local monorepo testing of unreleased Modern.js packages):
|
|
37
19
|
|
|
38
20
|
```bash
|
|
39
|
-
pnpm dlx @bleedingdev/modern-js-create
|
|
21
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app --workspace
|
|
40
22
|
```
|
|
41
23
|
|
|
42
24
|
The BleedingDev create package will directly create the application without providing an interactive Q & A interface:
|
|
@@ -44,7 +26,7 @@ The BleedingDev create package will directly create the application without prov
|
|
|
44
26
|
```bash
|
|
45
27
|
🚀 Welcome to UltraModern.js
|
|
46
28
|
|
|
47
|
-
📦 Creating project "
|
|
29
|
+
📦 Creating project "my-super-app"...
|
|
48
30
|
|
|
49
31
|
✨ Project created successfully! 🎉
|
|
50
32
|
|
|
@@ -52,7 +34,7 @@ The BleedingDev create package will directly create the application without prov
|
|
|
52
34
|
|
|
53
35
|
📁 Enter the project directory:
|
|
54
36
|
|
|
55
|
-
cd
|
|
37
|
+
cd my-super-app
|
|
56
38
|
|
|
57
39
|
🔧 Initialize Git repository:
|
|
58
40
|
|
|
@@ -71,37 +53,23 @@ Now, the project structure is as follows:
|
|
|
71
53
|
|
|
72
54
|
```
|
|
73
55
|
.
|
|
74
|
-
├──
|
|
75
|
-
|
|
56
|
+
├── apps
|
|
57
|
+
│ └── shell-super-app
|
|
76
58
|
├── package.json
|
|
77
|
-
├──
|
|
78
|
-
├──
|
|
79
|
-
│ ├──
|
|
80
|
-
│
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
│ └── page.tsx
|
|
85
|
-
└── tsconfig.json
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Tailwind CSS v4 is generated by default; pass `--no-tailwind` to omit `postcss.config.mjs`, `tailwind.config.ts`, and the Tailwind import.
|
|
89
|
-
|
|
90
|
-
By default, `modern.config.ts` enables `@modern-js/plugin-bff`, generates `api/effect/index.ts` + `shared/effect/api.ts`, and sets `bff.runtimeFramework` to `effect`.
|
|
91
|
-
When `--bff-runtime hono` is enabled, `modern.config.ts` enables `@modern-js/plugin-bff`, generates `api/lambda/hello.ts`, and sets `bff.runtimeFramework` to `hono`.
|
|
92
|
-
When `--workspace` is enabled, `@modern-js/*` dependencies use `workspace:*` versions for local monorepo linkage.
|
|
93
|
-
|
|
94
|
-
It creates a simple production-ready UltraModern app by default and installs
|
|
95
|
-
the published BleedingDev package aliases:
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
pnpm dlx @bleedingdev/modern-js-create myapp
|
|
59
|
+
├── packages
|
|
60
|
+
│ ├── shared-contracts
|
|
61
|
+
│ ├── shared-design-tokens
|
|
62
|
+
│ └── shared-effect-client
|
|
63
|
+
├── scripts
|
|
64
|
+
├── topology
|
|
65
|
+
└── verticals
|
|
99
66
|
```
|
|
100
67
|
|
|
101
|
-
|
|
68
|
+
The default workspace starts shell-only and installs the published BleedingDev
|
|
69
|
+
package aliases:
|
|
102
70
|
|
|
103
71
|
```bash
|
|
104
|
-
pnpm dlx @bleedingdev/modern-js-create my-super-app
|
|
72
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app
|
|
105
73
|
```
|
|
106
74
|
|
|
107
75
|
From a generated SuperApp workspace, add a business MicroVertical in place:
|
|
@@ -39,8 +39,8 @@ UltraModern.js additions are designed as the default product surface for new Sup
|
|
|
39
39
|
| MF vertical loading reliability | Retry/fallback patterns are often implemented per app | Adds deterministic timeout/network/contract-error reliability matrix and distributed OTEL continuity tests |
|
|
40
40
|
| Module onboarding governance | No module-certification evidence profile in baseline | Adds module SDK contracts, boundary anti-pattern guards, and release/module certification gate workflows |
|
|
41
41
|
| Router runtime | Default runtime path centers on React Router | Adds first-class TanStack Router runtime/CLI path (React Router remains supported) |
|
|
42
|
-
| Scaffolding templates | Default create templates center on React Router starter path |
|
|
43
|
-
|
|
|
42
|
+
| Scaffolding templates | Default create templates center on React Router starter path | Generates a SuperApp workspace by default with TanStack, Effect, Module Federation, i18n, Tailwind, Cloudflare, and ownership contracts |
|
|
43
|
+
| Workspace preset enforcement | No generated UltraModern preset gate workflow | Generated workspaces include `.github/workflows/ultramodern-workspace-gates.yml`, `pnpm check`, primitive local gates, and generated contract validation |
|
|
44
44
|
|
|
45
45
|
## What We Intentionally Do Not Change
|
|
46
46
|
|
|
@@ -56,33 +56,24 @@ For teams already on Modern.js 3.0, the adoption path remains compatibility-awar
|
|
|
56
56
|
1. Keep existing React Router apps running as-is. TanStack Router is the preferred path for new scaffolds and incremental route adoption, but the React Router lane remains supported while teams move on their own schedule.
|
|
57
57
|
2. Prefer `bff.runtimeFramework: 'effect'` for new BFF work, with the entry implemented at `api/effect/index.ts`. If your app already uses Hono handlers under `api/lambda/**`, keep `bff.runtimeFramework: 'hono'` until you are ready to move them; Hono remains a supported compatibility lane.
|
|
58
58
|
3. Treat the baseline contracts as progressive defaults, not a forced cutover. `MODERN_BASELINE_ENABLE_MF_SSR`, `MODERN_BASELINE_ENABLE_BFF_REQUEST_ID`, and `MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS` already let each app opt out while it converges on the preferred stack.
|
|
59
|
-
4. The public preset now ships with explicit release and certification gates.
|
|
59
|
+
4. The public preset now ships with explicit release and certification gates. Generated workspaces include `.github/workflows/ultramodern-workspace-gates.yml`, so `pnpm check` and `pnpm build` stay part of the local adoption contract from day one while CI runs the primitive gates as parallel matrix jobs.
|
|
60
60
|
|
|
61
61
|
This page is not a migration guide or codemod plan. Migration guidance for existing applications is intentionally deferred from the current Micro Verticals framework scope.
|
|
62
62
|
|
|
63
63
|
## Human Workflow
|
|
64
64
|
|
|
65
|
-
The public BleedingDev create package
|
|
66
|
-
|
|
67
|
-
TanStack Router, Tailwind CSS v4, i18n, Effect
|
|
68
|
-
Cloudflare deploy
|
|
65
|
+
The public BleedingDev create package has one supported generated product. The
|
|
66
|
+
default command creates a production-ready UltraModern SuperApp workspace with
|
|
67
|
+
`presetUltramodern(...)`, SSR, TanStack Router, Tailwind CSS v4, i18n, Effect
|
|
68
|
+
BFF, Module Federation topology, generated quality gates, and Cloudflare deploy
|
|
69
|
+
basics:
|
|
69
70
|
|
|
70
71
|
```bash
|
|
71
72
|
pnpm dlx @bleedingdev/modern-js-create myapp
|
|
72
73
|
cd myapp
|
|
73
74
|
mise install
|
|
74
75
|
mise exec -- pnpm install
|
|
75
|
-
mise exec -- pnpm
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Create a SuperApp workspace only when independent ownership is useful:
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
pnpm dlx @bleedingdev/modern-js-create my-super-app --ultramodern-workspace
|
|
82
|
-
cd my-super-app
|
|
83
|
-
mise install
|
|
84
|
-
mise exec -- pnpm install
|
|
85
|
-
mise exec -- pnpm ultramodern:check
|
|
76
|
+
mise exec -- pnpm check
|
|
86
77
|
```
|
|
87
78
|
|
|
88
79
|
The workspace starts from a shell and generated platform contracts. It does not
|
|
@@ -94,7 +85,7 @@ pnpm dlx @bleedingdev/modern-js-create transportation --vertical
|
|
|
94
85
|
pnpm dlx @bleedingdev/modern-js-create food-delivery --vertical
|
|
95
86
|
pnpm dlx @bleedingdev/modern-js-create payments --vertical
|
|
96
87
|
pnpm dlx @bleedingdev/modern-js-create maps --vertical
|
|
97
|
-
mise exec -- pnpm
|
|
88
|
+
mise exec -- pnpm check
|
|
98
89
|
```
|
|
99
90
|
|
|
100
91
|
The `--vertical` command mutates the current workspace. It creates the vertical
|
|
@@ -132,7 +123,7 @@ Version switching must select UI, Effect API, CSS, i18n JSON, and MF manifest ev
|
|
|
132
123
|
Local gates:
|
|
133
124
|
|
|
134
125
|
```bash
|
|
135
|
-
mise exec -- pnpm
|
|
126
|
+
mise exec -- pnpm check
|
|
136
127
|
mise exec -- pnpm build
|
|
137
128
|
mise exec -- pnpm cloudflare:build
|
|
138
129
|
```
|
package/package.json
CHANGED
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
"modern",
|
|
19
19
|
"modern.js"
|
|
20
20
|
],
|
|
21
|
-
"version": "3.2.0-ultramodern.
|
|
21
|
+
"version": "3.2.0-ultramodern.118",
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"registry": "https://registry.npmjs.org/",
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"mermaid": "^11.15.0",
|
|
28
|
-
"@modern-js/sandpack-react": "npm:@bleedingdev/modern-js-sandpack-react@3.2.0-ultramodern.
|
|
28
|
+
"@modern-js/sandpack-react": "npm:@bleedingdev/modern-js-sandpack-react@3.2.0-ultramodern.118"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@rsbuild/plugin-sass": "1.5.3",
|