- TypeScript 48.6%
- Vue 30.8%
- CSS 18%
- JavaScript 2.1%
- Makefile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| docs | ||
| examples | ||
| packages/ui | ||
| scripts | ||
| storybook | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitignore | ||
| .node-version | ||
| .prettierignore | ||
| .prettierrc.mjs | ||
| AGENTS.md | ||
| bun.lock | ||
| CLAUDE.md | ||
| CONTEXT.md | ||
| Dockerfile.example-vue | ||
| Dockerfile.storybook | ||
| eslint.config.ts | ||
| LICENSE | ||
| Makefile | ||
| package.json | ||
| README.md | ||
| release.config.js | ||
| tsconfig.typecheck.json | ||
| ws.toml | ||
pienter-ui
Bun workspace containing the @pienter/ui component library and the consumer
apps used to develop it.
| Path | Package | What it is |
|---|---|---|
packages/ui |
@pienter/ui |
The published library — components, styles, icons, utilities. |
examples/vue |
@pienter/example-vue |
Vue CMS playground. |
storybook |
@pienter/catalog |
Storybook component catalog. |
The consumers depend on the library with "@pienter/ui": "workspace:*", which
bun links as a symlink into packages/ui. Library edits are picked up with no
re-install, and imports resolve through the real exports map rather than an
alias.
Getting started
Install once from the repo root — there are no per-app lockfiles:
bun install
Then run a surface:
bun run dev:vue # http://127.0.0.1:5173
bun run dev:storybook # http://127.0.0.1:6006
Parallel worktrees
Worktrees live at .claude/worktrees/<name>. One command makes a new one
usable — it claims dev-server ports of its own, copies the local Claude
settings over, and installs:
git worktree add .claude/worktrees/<name> -b <branch>
cd .claude/worktrees/<name>
make worktree-setup
The ports are derived from the worktree's directory name and written once into
a git-ignored .env that the Makefile includes, so every worktree — and the
primary checkout, which keeps the ports above — can serve at the same time.
Setup prints the URLs; .env holds them afterwards.
Start the servers through make inside a worktree:
make example-vue-dev
make storybook-dev
bun run dev:* is fine in the primary checkout, but in a worktree it would
serve on the defaults above: bun reads .env into its own runtime and not into
package.json scripts, so only the Makefile puts the worktree's ports into the
environment.
Checks
make ci runs exactly what CI runs:
bun run lint # ESLint flat config, lint-only
bun run typecheck # vue-tsc over the library
bun run format:check # Prettier
Documentation
- CMS architecture and usage — component APIs, ordinary Vue pages, and the backend contract, with sections for design feedback.
packages/ui/README.md— library usage and installation.packages/ui/CONVENTIONS.md— component authoring conventions.CONTEXT.md— domain glossary.docs/adr/— architectural decisions.examples/CMS_PLAYGROUND.md— playground scope decisions.