Act-Vite is built by developers who wanted this tool to exist. If you've ever thought "I wish this did X" while using it — that's your cue. We'd genuinely love your help.
All contributions are welcome, no matter how small. A typo fix is explicitly just as valuable as a new feature.
Getting the monorepo running locally takes less than a minute.
- Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/actvite.git
cd actvite- Install dependencies (requires
pnpm8+):
pnpm install- Build all packages:
pnpm build- Verify it works:
pnpm testThe monorepo is managed with pnpm workspaces. It's shockingly simple:
packages/actvite/— The core runtime and framework bindings.packages/actvite-server/— The Node.js token exchange adapters.packages/actvite-multiplayer/— The WebSocket shared state layer.packages/create-actvite/— The CLI tool that scaffolds projects.docs/— The VitePress documentation site.examples/— Working example activities.
- Create a branch from
main(e.g.,feat/add-magic,fix/broken-thing,docs/typo-fix). - Make your changes. Keep commits focused and logically grouped.
- If you add a new feature, add a quick test pattern for it.
- Run
pnpm formatandpnpm lintto keep the code consistent. - Run
pnpm buildto ensure TypeScript compilation doesn't fail.
When you open a Pull Request:
- Keep the description clear. What does it do? Why is it needed?
- If it changes the public API, please update
docs/api/reference.md. - We use Changesets for versioning. If your PR affects published packages, run
pnpm changeset, follow the prompts, and commit the generated file.
- Found a bug? 🐛 Please open an issue.
- Have a wild idea? 💡 Start a discussion.
And if you can't contribute code right now, a ⭐ on the repo is genuinely appreciated. It helps other developers find Act-Vite, which keeps the project alive. We mean that sincerely.
Thanks for helping build Act-Vite! 💜