This monorepo hosts Swarm, a Typescript code generation framework along with related plugins and starter templates.
This repository is organised as a monorepo, using pnpm. Key directories include:
- apps/
swarm-wasp-starter: Minimal Wasp starter template
- packages/
swarm: Core framework including CLI, MCP server, plugin system, and app generatorswarm-wasp: Wasp component generators, templates, and enhanced configuration
Install pnpm if you don't have it already:
npm install -g pnpmClone, install and validate the project:
# Clone the repository
git clone <repository-url>
cd swarm
# Install dependencies
pnpm install
# Build, test, lint and format all packages
pnpm validateTo integrate Swarm components into your own projects or to extend the framework, see the relevant README files inside specific templates and packages (e.g. apps/swarm-wasp-starter, projects/swarm-wasp, etc.)
- Monorepo management: pnpm (
pnpm-workspace.yaml) - Code style and linting: ESLint, Prettier, EditorConfig
- Schema management: Zod
- Testing: Vitest
- CI/CD: GitHub Actions
This project uses changesets with automatic generation via conventional commits for version management and releases.
- Make your changes to the relevant package(s)
- Commit using conventional commit format:
git commit -m "feat: add new feature" git commit -m "fix(swarm): resolve issue in swarm" git commit -m "feat(swarm-wasp): add new command" git commit -m "feat!: breaking change"
- Changesets are automatically generated from your commit messages during CI
Alternatively, you can still create changesets manually:
pnpm changesetReleases are automated through GitHub Actions:
- When PRs are merged to
main, a "Version Packages" PR is automatically created - The version PR is reviewed and merged to publish the packages to npm
- Follow the guidelines in CONTRIBUTING.md
- Use TypeScript best practices
- Add tests for new functionality
- Update documentation for new features
- Ensure all existing tests continue to pass
MIT License - see the LICENSE file for details.