create-zeapp
v0.1.1
Published
CLI for Ze-family apps: scaffold a zesdk project, serve it, generate views, list icons and update the vendored SDK. Zero dependencies beyond zesdk itself.
Maintainers
Readme
🛠️ create-zeapp
🚀 Quick start
npm create zeapp@latest myapp
cd myapp
npm install # pulls the Tauri CLI
npx zeapp dev # opens the native desktop window (needs Rust)That scaffolds a bundler-free desktop app with the house conventions baked in
(DESIGN.md §2.4): boot-only app.js, one module per feature, vendored SDK,
import map so import { createShell } from "zesdk" works straight from disk,
a src-tauri/ shell with frontendDist → ../src (no dev server / no port),
README + Keep-a-Changelog pre-filled, fr.makix.<name> identifier.
📦 Commands
| Command | Does |
|---|---|
| create-zeapp <name> | scaffold a new app (--title, --id, --git, --force; prompts when run bare) |
| zeapp dev [dir] | run the app as a native Tauri desktop window (no dev server) |
| zeapp run [dir] | release-build the desktop app and launch it |
| zeapp view <name> | generate src/modules/<name>.js and register it in app.js (--title, --icon) |
| zeapp icons [filter] | list the zesdk icon names |
| zeapp update | re-vendor the newest reachable zesdk into src/vendor/zesdk |
| zeapp serve [dir] | browser preview fallback (--port 4600, --open) — no native APIs |
| zeapp help / version | usage / version |
create-zeapp and zeapp are the same binary — use whichever reads better.
🧭 How the pieces fit
- Scaffold — copies
templates/app/, substitutes{{name}}/{{title}}/{{id}}, and vendors the SDK (resolved from the app'snode_modules, then this CLI's dependency, then the monorepo sibling). zeapp.json— tiny app manifest at the project root; it is howzeapp viewandzeapp updatefind the app from any subdirectory.- Markers —
app.jscarries// zeapp:module-importsand// zeapp:module-listcomments; the view generator inserts above them, so registration stays automatic. - Desktop-first —
zeapp dev/rundrive the Tauri CLI (local@tauri-apps/cli, elsecargo tauri).tauri.conf.jsonsetsfrontendDist → ../srcandwithGlobalTauri, so the window loadssrc/from disk and the zesdk bridge uses native IPC. On first run the icon set is generated fromsrc-tauri/app-icon.png. - App paths —
src-tauri/src/lib.rscreates~/.<name>(data) on startup and exposes it plus~/.local/share/<name>(install) via theapp_pathscommand;zeapp serveremains for a quick browser preview without native APIs.
