November 3, 2025|Ryan De La Torre|
We’ve created several new extended libraries to open up our contributions!
EngineeringNew Features
New Common package for contributions
In Anvil1, we used theanvil-uikit-contrib repo as a place to host more specific contributions that were built on top of the more general-purpose anvil components and uikit packages. However, for Anvil2, we wanted a contribution area that was directly within our repo and we wanted to give much more guidance and help with maintaining those contributions.
To this end, we’ve created a new npm package called @servicetitan/anvil2-ext-common!
This Common package is meant to be a place for contributions that extend the Anvil2 library, but that don’t necessarily make sense to live inside of Anvil2. Do you have a wrapper to connect a component to MobX or formstate or to a specific backend API? Do you have a shorthand to reduce the boilerplate for one of your common use cases? This is the place for those kinds of contributions!
This library can also be used as a place to test new ideas and features that are proposed to be added to Anvil2 in the future, but that need more validation or testing. Code in the common library can allow for more experimental contributions and can serve as a more open area for testing ideas.
The ext-common package is brand new, and so we’d also like to shout out Roy Tinker for making the very first contribution!
Even more extended packages
However, we’re not only using this new extended package structure for theext-common library! This idea of adding new extended packages is how we plan to support Atlas components (ext-atlas), Mobile Web View components (ext-mwv), amCharts themes for data visualization (ext-charts), and more to come.
One of the benefits of having these additional packages inside the Anvil2 repo is that it will be much easier to keep these packages coordinated and up-to-date. If you make a change to one of these packages, there will be a PR check that tests your changes against the latest version of Anvil2. When a new version of Anvil2 is released, we’ll also release a new version of any extended packages if it’s necessary to keep it current. (Note: It will still be possible to pin the Anvil2 version used by an extended package if your use case requires that.)
Continued repo improvements
As for the core Anvil2 package, our team has merged theanvil2 and hammer-react packages into one, single package, so all of the code that used to exist within hammer-react now exists within anvil2. Our hope is that this will make navigating, understanding, and contributing to the core Anvil2 library easier than ever. If you want to change one of the core components, there is just one place to look for it. Local builds will also be faster and PR checks will run quicker.
In addition, we’ve added new instructions in our CONTRIBUTING.md file specifically to help Windows users get set up with contributing to our repo.
We’ve also updated our default branch name to main for better inclusivity.