On every project, there are always tools that can help your team align, standardise, and increase productivity and quality of code through their use.
We’re constantly reviewing new tools to help automate away pain points, and help us create a better end product. I’m listing what we currently use here in the hope that you get some use from them. And please, let me know if you have suggestions for tools you think we should be using.
1. husky – Local git hooks made easy. It allows you to force running of commit message linting, project linting and unit tests (if these are cheap to run) pre-commit or pre-push. Cuts down on bad commits or PR reverts with linting and formatting issues.
Linting and formatting
3. prettier – Opinionated formatters take away the debate about which formatting to employ. Company wide rules are implemented once again for standardisation.
Commit Message Standards
4. commitlint – Keeps your commit history clean on a project, and can be customised to suit your team’s needs. Normally runs via husky pre-commit to stop anyone not keeping their commit messages standardised.
Dependency Auditing and Updating
5. dependabot – Purchased by Github and free to use on that platform. Allows you to continuously keep your dependencies up to date and opens PR’s for you, allowing you to keep your project up to date.
6. audit-ci – Useful for auditing dependencies pre-deploy or on CI jobs to stop critical vulnerabilities getting into production.
PR Assignment and Metrics
7. pull panda – Purchased by Github and free to use on that platform. Allows automatic assignment of pull requests on a round-robin or load-balanced basis, or based on CODEOWNERS file, sends pull reminders to team in Slack about open PR’s and provides useful metrics on turnaround time, size of PR’s, time to merge etc.
8. github slack integration – For build statuses.
9. pull panda – For PR reminders and updates from within Slack.
10. package-json-help – NPM package to add a help.json file for quick helpful description of the npm script commands available.
11. js-parametrize – Easy parameterised unit testing. Can be used with Jest or Mocha/Chai and is easier to use and more powerful than the equivalent Jest.each functionality.
12. storybook – Allows development of components in isolation. Also allows a client to view components being developed independent of the app.
13. sentry – Provides detailed error and crash reporting for your applications per environment.
Previously published at https://blog.nona.digital/useful-tooling-we-use-at-nona/