Opinionated Nx plugins for shipping modern TypeScript projects, built by Black Anvil.
Foundry is the home for a small, growing collection of Nx plugins I extract from my own projects and open-source so other developers can use them too. Each plugin is opinionated by design β the goal is to encode a working setup rather than expose every possible knob.
This repository is an Nx monorepo (managed with pnpm) containing:
| Path | Description |
|---|---|
apps/documentation |
The Foundry documentation site β a TanStack Start app (React 19 + Vite + Tailwind v4) that lists the available plugins. |
packages/nx-package-plugin |
@blackanvil/nx-package-plugin β Nx generators for scaffolding TypeScript packages bundled with tsup. |
Scaffolds a modern, dual-format (ESM + CJS) TypeScript package with:
- A
package.jsonusing conditionalexportsand atypes-first resolution order - A ready-to-go
tsup.config.ts - TypeScript and Nx project configuration wired into the workspace
- Vitest set up for tests
nx generate @blackanvil/nx-package-plugin:tsup-package --name=@scope/package-nameSee the package README and the tsup-package generator docs for full details.
Install dependencies:
pnpm installRun the documentation site locally:
pnpm nx dev documentationBuild everything:
pnpm buildRun tests across the workspace:
pnpm testfoundry/
βββ apps/
β βββ documentation/ # TanStack Start docs site
βββ packages/
β βββ nx-package-plugin/ # @blackanvil/nx-package-plugin
βββ docs/ # Workspace-level architecture & publishing notes
βββ nx.json # Nx workspace config
βββ pnpm-workspace.yaml
Versioning and publishing are handled by nx release:
pnpm release:dry-run # preview a release
pnpm release # cut a releaseIssues and pull requests are welcome. These plugins are intentionally opinionated β if a default doesn't work for you, open an issue and let's talk about it before it becomes a configuration option.
MIT