mirror of
https://github.com/jakejarvis/stanza.git
synced 2026-08-30 23:05:33 -04:00
cadef102265bbff903a5a3aed20d683d2ef9ad6a
- `CommandBar` now holds a local `draft` state and pushes `onNameChange` only after a 300 ms debounce — each call navigates, reruns the loader, and rebuilds the file tree, so firing per keystroke was wasteful; external `name` changes (history nav, reset) flow back into `draft` via a sync effect
- `FilePreview.useEffect` snapshots which directory nodes were expanded before calling `model.resetPaths` and replays them via `initialExpandedPaths` — previously `resetPaths` collapsed the entire tree on every module selection change
- A semi-transparent spinner overlay (`useRouterState({ select: s => s.isLoading })`) renders over the file-preview grid while the route loader reruns, replacing the jarring "flash of stale content" with a subtle refresh indicator
- Right-column section in `builder/index.tsx` gains `lg:flex lg:h-[calc(100vh-6rem)] lg:flex-col` so it fills the viewport and `FilePreview` can grow to consume remaining space; card, inner grid, and `PreviewPane` scroll container all get `lg:flex-1 lg:min-h-0 lg:max-h-none` to lift the fixed `sm:max-h-[480px]` cap on large screens; `EmptyState` gets the same flex treatment
- Both `navigate` calls pass `resetScroll: false` so typing a project name or toggling a module doesn't jump the viewport back to the top
- `--trees-bg-override:transparent` is set on `<FileTree>` so the shadow-DOM tree background inherits the card surface rather than painting its own opaque fill
Stanza
Modular monorepo template CLI — shadcn for full-stack TypeScript stacks.
pnpm create stanza my-app
Pick a framework, ORM, database, auth provider, styling — get a clean monorepo with idiomatic code, vendored into your repo. Add modules later with stanza add.
Generated projects keep slot boundaries explicit: auth, db, and orm install into their own internal workspace packages (packages/auth/, packages/db/, named @<your-app>/auth, @<your-app>/db), and your app consumes them via workspace:* deps. Swapping an auth provider replaces the contents of packages/auth/ without touching your app's imports.
What's inside
apps/
cli/ # @stanza/cli — the CLI binary
web/ # https://stanza.tools (TanStack Start)
packages/
registry/ # shared schema, slot/peer/capability resolver
codemods/ # ts-morph helpers for region-aware patching
create-stanza/ # `pnpm create stanza` shim
registry/
modules/ # first-party modules (framework, orm, db, auth, styling)
Status
Work in progress. See CLAUDE.md, TODO.md, and REGISTRY.md for current state.
License
MIT — see LICENSE.
Languages
TypeScript
91.5%
MDX
6.1%
CSS
2.2%
JavaScript
0.2%