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.
Git Hooks
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.
2. eslint – It’s the standard for Javascript and Typescript now. We have company-wide rules implemented for standardisation across projects.
3. prettier – Opinionated formatters take away the debate about which formatting to employ. Company wide rules are implemented once again for standardisation.
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.
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.
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/