@symbiosika/create-app
v0.1.1
Published
Scaffold a new fullstack app from the symbiosika template (Bun + Hono backend, Vue 3 frontend, framework wired in as a live git submodule).
Maintainers
Readme
@symbiosika/create-app
Scaffolder for the symbiosika fullstack template — a Bun + Hono backend and a Vue 3 frontend, with the symbiosika-framework wired in as a live git submodule.
Usage
npm create @symbiosika/app@latest my-app
# or
bunx @symbiosika/create-app my-appThen follow the printed next steps.
Options
| Flag | Description |
|---|---|
| --branch <name> | Framework submodule branch (default: develop) |
| --template <url> | Template repo to clone (default: symbiosika/template_fullstack-app) |
| --no-install | Skip bun install for backend & frontend |
| --no-init | Skip bun run init (secret generation) |
| -y, --yes | Accept defaults, no prompts |
How it works
The template is not a published library — it's a template repo that pulls
the framework in via a git submodule. npm tarballs don't carry submodules, so a
plain npm create can't reproduce the layout. This CLI therefore:
git clone --depth 1the template,- drops the template's git history,
git inita fresh repo,- re-adds the framework as a live submodule (
git submodule add -b <branch>), so the generated project keeps receiving framework updates viagit submodule update --remote, - personalises package names, installs deps and generates secrets.
The scaffolder's own folder (create-app/) and its publish workflow are stripped
from generated projects.
Why is this package inside the template repo?
So the scaffolder and the template version together and never drift apart. The
CLI is published to npm independently of the template — see
PUBLISHING.md.
Development
bun install
bun run dev ./tmp-test # run the scaffolder from source
bun run typecheck
bun run build # bundle to dist/index.js