mirror of
https://github.com/jakejarvis/stanza.git
synced 2026-10-16 07:25:43 -04:00
- Rename `styling` → `ui` across the entire codebase (CATEGORIES array, docs, AGENTS.md, CLI tests, resolver, template tests, codemod runner); `ui` is `home: package` so shadcn installs into `packages/ui/` as a workspace dep rather than wiring directly into the app shell - Add `ui-shadcn-base` (Tailwind v4 / CSS-first, no Radix peer) and `ui-shadcn-radix` (Tailwind v4 + Radix primitives) with full per-framework template sets for Next.js and TanStack Start: `components.json`, `globals.css`, `postcss.config.mjs`, `theme-provider.tsx`, shared `Button` + `utils.ts`; light/dark logos inlined from svgl - Rename `styling-tailwind` → `ui-tailwind` to match the new category id; update its module definition to `category: "ui"` and `home: package` - Add four new codemod builtins with tests: `add-array-entry-in-call` (inserts an element into a named array argument of any `CallExpression`), `replace-import` (rewrites a specifier in an existing import declaration), `set-html-attributes` (sets attributes on an HTML/JSX element by tag name or selector), `set-tsconfig-paths` (merges `compilerOptions` entries into a `tsconfig.json` AST node); register all four in the builtins index and export from `@stanza/codemods` - Add `wrap-root-layout` builtin tests - Update registry.mdx, concepts.mdx, cli.mdx, getting-started.mdx, agents.mdx, index.mdx, AGENTS.md, README.md, TODO.md, and SKILL.md to reflect the category rename and new modules
2.0 KiB
2.0 KiB
title, description
| title | description |
|---|---|
| Introduction | Assemble modular full-stack TypeScript monorepos with Stanza. |
Stanza is a shadcn-style CLI for assembling modular full-stack TypeScript monorepos. Pick a framework, UI, database, ORM, and auth — Stanza vendors idiomatic code directly into your repo, with no additional runtime dependencies to maintain afterwards.
Why Stanza
addworks afterinit. Runstanza addon an existing project. It reads yourstanza.jsonmanifest, resolves peer constraints, and picks the right adapter for your stack — so adding auth to a Next + Drizzle app writes different code than adding it to a TanStack Start + Prisma app.- Your code, vendored. Generated files land in your repo verbatim. There's no
@stanza/runtimepackage to install, and nothing to upgrade out from under you — the code is yours to edit. - Open registry. Modules are plain static JSON. The CLI ships with a default registry, but you can point it at your own host with
STANZA_REGISTRYand serve custom modules.
How it fits together
You choose modules across a small set of categories — framework, ui, db, orm, auth, tooling, testing, and more. Stanza scaffolds a clean monorepo, vendoring each module's templates, dependencies, and environment variables into the right place: app shell code into your app, data and auth layers into their own workspace packages. Later, stanza add and stanza remove layer modules in and out without you hand-editing the wiring.
Next steps
- Getting started — create your first project and add a module.
- Concepts — the mental model: categories, vendoring, peers, and the manifest.
- CLI reference — every verb, flag, and environment variable.
- Agents — drive Stanza from Claude Code, Codex, or any coding agent.
Or skip ahead and assemble a stack visually with the builder.