create-muten 0.0.13 → 0.0.15

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ## ALPHA - STILL ON DEVELOPMENT
2
2
  Muten is still under active development. We are currently in the alpha stage and are working on training models with Muten. Please keep in mind that improvements are being made gradually, and version 1.0 has not been released yet.
3
3
 
4
- The official scaffolder for **[Muten](https://www.npmjs.com/package/@muten/core)** an AI-first
4
+ The official scaffolder for **[Muten](https://www.npmjs.com/package/@muten/core)**: an AI-first
5
5
  frontend framework. One command bootstraps a complete, ready-to-run Muten app, so you never copy
6
6
  boilerplate by hand.
7
7
 
@@ -11,11 +11,11 @@ npm create muten@latest
11
11
 
12
12
  ## Why this exists
13
13
 
14
- Muten ships as **two** packages the same split as `vue` ↔ `create-vue`:
14
+ Muten ships as **two** packages - the same split as `vue` ↔ `create-vue`:
15
15
 
16
- - **[`@muten/core`](https://www.npmjs.com/package/@muten/core)** the engine (compiler + runtime +
16
+ - **[`@muten/core`](https://www.npmjs.com/package/@muten/core)**: the engine (compiler + runtime +
17
17
  Vite plugin). Your app installs it as a normal dependency and it stays up to date on its own.
18
- - **`create-muten`** (this package) a tiny, **zero-dependency** CLI whose only job is to generate a
18
+ - **`create-muten`** (this package) - a tiny, **zero-dependency** CLI whose only job is to generate a
19
19
  new project already wired to the engine: `index.html`, the Vite config, a `theme.muten`, a first
20
20
  page and the right `package.json`.
21
21
 
@@ -68,36 +68,36 @@ In an interactive terminal it prompts for a few things (defaults in parentheses)
68
68
  | **Package manager** | `npm` / `pnpm` / `yarn` / `bun` | the one that launched it |
69
69
  | **Install deps and start dev now?** | `Y` / `n` | `Y` |
70
70
 
71
- **Styling is one explicit choice** each is opt-in, nothing is bundled by default: `CSS` (plain) or `SCSS`
71
+ **Styling is one explicit choice**: each is opt-in, nothing is bundled by default: `CSS` (plain) or `SCSS`
72
72
  ship no framework; `Tailwind CSS` adds `@tailwindcss/vite` + `@import "tailwindcss"`; `DaisyUI` adds its
73
73
  component classes on top (and brings Tailwind). You always style via `class("…")`.
74
74
 
75
- **Targets are independent opt-ins** web, desktop, both, or neither, from the same `.muten` source:
75
+ **Targets are independent opt-ins**: web, desktop, both, or neither, from the same `.muten` source:
76
76
  - **Vercel** writes a `vercel.json` so muten's real-path routes don't 404 on a hard refresh (SPA fallback to `index.html`).
77
- - **Tauri** adds `src-tauri/` (a native desktop app ships the OS webview, *not* a browser) + a `tauri` script:
77
+ - **Tauri** adds `src-tauri/` (a native desktop app - ships the OS webview, *not* a browser) + a `tauri` script:
78
78
  `npm run tauri dev` / `tauri build`. Needs the [Rust toolchain](https://rustup.rs) installed (not auto-installed).
79
79
 
80
80
  ## Templates (flavors)
81
81
 
82
- Every flavor scaffolds the **same** welcome page and the same `.muten` workflow the only difference is
82
+ Every flavor scaffolds the **same** welcome page and the same `.muten` workflow, the only difference is
83
83
  whether a framework's island plugin is pre-wired:
84
84
 
85
85
  | Template | What you get |
86
86
  |---|---|
87
- | **muten** | pure muten the AI-first DSL, zero framework runtime |
87
+ | **muten** | pure muten - the AI-first DSL, zero framework runtime |
88
88
  | **muten + React** | same, plus `@vitejs/plugin-react` + React, so you can drop in a **React island** (shadcn/Radix, any React lib) |
89
89
  | **muten + Svelte** | same, plus `@sveltejs/vite-plugin-svelte` + Svelte, for **Svelte islands** (a lighter runtime) |
90
90
 
91
- An *island* is a real framework component used as a node `use X from "react:./X.jsx"` →
91
+ An *island* is a real framework component used as a node - `use X from "react:./X.jsx"` →
92
92
  `X(value: @s, onChange: act) client:visible` (props ↓ + events ↑, lazy + code-split). Default to `.muten`;
93
93
  reach for an island only for a widget muten can't express.
94
94
 
95
95
  When **Tailwind or DaisyUI** is added, `theme.muten` is centralized to **match Tailwind's scale** (so
96
96
  `style()` tokens and Tailwind utilities share one scale, e.g. `style(gap.md)` == `gap-4`); plain CSS/SCSS
97
- keeps the default scale. **DaisyUI** adds component classes (`btn`, `card`, `modal`) usable in `class("…")`
97
+ keeps the default scale. **DaisyUI** adds component classes (`btn`, `card`, `modal`) usable in `class("…")` -
98
98
  pure classes, no React; behavior is Muten state + `on()`.
99
99
 
100
- If you accept the last prompt it runs `<pm> install` followed by `<pm> run dev` your app is live in a
100
+ If you accept the last prompt it runs `<pm> install` followed by `<pm> run dev`, your app is live in a
101
101
  single step. Choosing SCSS also adds `sass` and switches the stylesheet to `.scss` automatically.
102
102
 
103
103
  ## Non-interactive (CI / scripts)
@@ -118,9 +118,9 @@ create-muten my-app --css --no-install # just scaffold, decide later
118
118
  | `--tailwind` | add Tailwind CSS v4 on top of CSS (forces `--css`) |
119
119
  | `--daisyui` | add DaisyUI component classes (implies `--tailwind`) |
120
120
  | `--vercel` | add `vercel.json` (SPA fallback so real-path routes work on Vercel) |
121
- | `--tauri` | add `src-tauri/` a native desktop app (needs the Rust toolchain) |
121
+ | `--tauri` | add `src-tauri/` - a native desktop app (needs the Rust toolchain) |
122
122
  | `--pm <npm\|pnpm\|yarn\|bun>` | package manager to use (default: detected) |
123
- | `--no-install` | scaffold only don't install or start the dev server |
123
+ | `--no-install` | scaffold only - don't install or start the dev server |
124
124
  | `--help` | print usage and exit |
125
125
  | `--version` | print the version and exit |
126
126
 
@@ -130,7 +130,7 @@ A minimal, conventional Muten app:
130
130
 
131
131
  ```
132
132
  my-app/
133
- ├─ index.html # entry loads /src/app.muten through the Vite plugin
133
+ ├─ index.html # entry - loads /src/app.muten through the Vite plugin
134
134
  ├─ vite.config.mjs # the @muten/core Vite plugin (dev server, HMR, routing)
135
135
  ├─ theme.muten # your design tokens: spacing, fonts, weights, breakpoints
136
136
  ├─ package.json # depends on @muten/core + vite
@@ -138,7 +138,7 @@ my-app/
138
138
  ├─ app.muten # the ROOT: routes (+ an optional persistent shell)
139
139
  ├─ styles.css # your look (.scss if you chose SCSS)
140
140
  └─ pages/
141
- └─ home/home.muten # a page the folder name is its route
141
+ └─ home/home.muten # a page - the folder name is its route
142
142
  ```
143
143
 
144
144
  There is **no hand-written `main.js`**: the Vite plugin compiles `src/app.muten` into the app's entry,
@@ -146,25 +146,25 @@ so the whole app is `.muten` from the first line.
146
146
 
147
147
  ## What you can build
148
148
 
149
- **Honest framing first.** muten isn't trying to beat React/Vue/Svelte at being general-purpose they win there.
149
+ **Honest framing first.** muten isn't trying to beat React/Vue/Svelte at being general-purpose, they win there.
150
150
  muten wins when an **AI builds and maintains the app**: the whole language fits in context, a compiler (`muten
151
151
  check`) catches mistakes in milliseconds without a browser, edits stay tiny, and almost no JS ships. Best fit: the
152
- declarative 80% CRUD, dashboards, catalogs, content, internal tools. For the rest, you don't fight it you
152
+ declarative 80% - CRUD, dashboards, catalogs, content, internal tools. For the rest, you don't fight it - you
153
153
  **couple in other tech** through bounded escapes. Reach for the **lowest tier that works**:
154
154
 
155
- - **Pure muten** CRUD / SaaS / catalog / dashboard / content: pages, routing, `state`/`store` (with page→store
155
+ - **Pure muten**: CRUD / SaaS / catalog / dashboard / content: pages, routing, `state`/`store` (with page→store
156
156
  action composition), `query` over REST, `Form` (text/number/email/bool/enum + validation), `DataTable`,
157
- `when`/`each`, SSG + SEO, and the bounded **list toolkit** inline objects, `patch` in-place edit, `each…where`
157
+ `when`/`each`, SSG + SEO, and the bounded **list toolkit**: inline objects, `patch` in-place edit, `each…where`
158
158
  filter, aggregates (`sum`/`count`/`avg`/`min`/`max`), `sort`/`sortDesc`. The declarative 80%, zero extra deps.
159
- - **muten + the platform** *(no framework runtime)* native HTML (`<input type="date">`, `<dialog>`) + `class()`,
159
+ - **muten + the platform** *(no framework runtime)* - native HTML (`<input type="date">`, `<dialog>`) + `class()`,
160
160
  CSS libs (Tailwind / DaisyUI), **vanilla JS via `Custom`** (charts, maps, date-pickers, rich-text, grids),
161
161
  `use fmt from "./lib.ts"` for any JS logic. Almost every "hard widget" lands here, *without React*.
162
- - **Svelte / React island** (`--svelte` / `--react`) only when the component *is* a framework component
162
+ - **Svelte / React island** (`--svelte` / `--react`) - only when the component *is* a framework component
163
163
  (shadcn/ui, a React-only lib). Ships that runtime, lazy + code-split. The narrow last resort.
164
164
 
165
165
  **Deploy, honestly:** `npm run dev` runs every tier. For production, pure-muten static content can ship via
166
166
  `muten build` (zero-JS HTML); the moment you use `use`/islands/shared cross-page state, deploy with a normal
167
- `vite build` (it bundles them the static build doesn't). Most real apps use `vite build`.
167
+ `vite build` (it bundles them - the static build doesn't). Most real apps use `vite build`.
168
168
 
169
169
  Full reference (every primitive, the three tiers, the roadmap): [`@muten/core`](https://www.npmjs.com/package/@muten/core).
170
170
 
@@ -179,10 +179,10 @@ Full reference (every primitive, the three tiers, the roadmap): [`@muten/core`](
179
179
  ## Cross-platform
180
180
 
181
181
  `create-muten` is a Node CLI (not a shell script), so the **exact same command** works on **Windows,
182
- macOS and Linux** npm generates the right launcher on each OS.
182
+ macOS and Linux**: npm generates the right launcher on each OS.
183
183
 
184
184
  ## Links
185
185
 
186
- - Engine [`@muten/core`](https://www.npmjs.com/package/@muten/core)
187
- - Source [github.com/karttofer/create-muten](https://github.com/karttofer/create-muten)
188
- - License MIT
186
+ - Engine - [`@muten/core`](https://www.npmjs.com/package/@muten/core)
187
+ - Source - [github.com/karttofer/create-muten](https://github.com/karttofer/create-muten)
188
+ - License - MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-muten",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "Scaffold a new Muten app.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,7 +8,7 @@
8
8
  "lint": "muten lint"
9
9
  },
10
10
  "dependencies": {
11
- "@muten/core": "^0.0.10"
11
+ "@muten/core": "^0.0.12"
12
12
  },
13
13
  "devDependencies": {
14
14
  "vite": "^8.0.16"