Mesh Analytics is a tool that surfaces usage information about our Mesh Design System component library. By cataloguing data about component adoption, version history and repository maintenance, it provides valuable insight to both consumers and maintainers of Mesh.
Designed as a decision-making tool, Mesh Analytics provides us with system usage metrics to enable informed choices when developing the Mesh Design System. It snapshots and highlights quantitative data about which component packages and versions have been utilised by individual teams and repositories, and is updated daily.
The tool can answer many questions for us as maintainers, including:
- What repositories are using our Mesh components?
- What versions of Mesh components are installed?
- Is anyone still using this deprecated package/version?
- Who do we need to contact about a bug in a specific Mesh package version?
- Which teams are doing a good job of keeping on top of Mesh updates? Which teams may need some help?
- If we were to radically change a Mesh package, which teams would be affected?
- Who are our closer stakeholders for a Mesh package?
- Can we delete this package from our system?
There are also benefits for the consumers of the Mesh Design System. Team members (including non-developers) are able to quickly see an overview, and detailed summary, of the "Mesh health" of the projects they own. This allows teams to make informed decisions about managing tech debt, what new features they are missing out on, and guidance on how to upgrade. The tool breaks down the usage data by reposoitory, team and component enabling consumers to review the comparitive health of their assets against all other repositories and teams building with Mesh.
Our tool uses GitHub APIs to pull npm dependency information from repository lockfiles within the
nib-group GitHub organisation. This data-fetching only happens at build-time, and the app data is refreshed daily by a scheduled buildkite build.
If you are interested in how the tool works, and an employee of nib Group, please take a look at the source.
Given that this tool surfaces repository and team structures, access has been restricted to nib Group employees and contractors. Access has automatically been granted to key teams, but other users can add the app themselves via their App Catalog.