Skip to content

vreddi/black-anvil

Repository files navigation

Foundry

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.

What's inside

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.

Plugins

Scaffolds a modern, dual-format (ESM + CJS) TypeScript package with:

  • A package.json using conditional exports and a types-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-name

See the package README and the tsup-package generator docs for full details.

Getting started

Install dependencies:

pnpm install

Run the documentation site locally:

pnpm nx dev documentation

Build everything:

pnpm build

Run tests across the workspace:

pnpm test

Repository layout

foundry/
β”œβ”€β”€ 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

Releases

Versioning and publishing are handled by nx release:

pnpm release:dry-run   # preview a release
pnpm release           # cut a release

Contributing

Issues 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.

License

MIT

About

πŸ”± Built to accelerate development

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors