npm-based plugin system