On every project, there are always tools that can help your team align, standardise, and increase productivity and quality of code through their use.
At Nona, 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.
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
prettier – Opinionated formatters take away the debate about which formatting to employ. Company wide rules are implemented once again for standardisation.
Commit Message Standards
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.
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.
audit-ci – Useful for auditing dependencies pre-deploy or on CI jobs to stop critical vulnerabilities getting into production.
PR Assignment and Metrics
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.
package-json-help – NPM package to add a help.json file for quick helpful description of npm commands available.
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 functionality.
storybook – Allows development of components in isolation. Also allows a client to view components being developed independent of the app.
sentry – Provides detailed error and crash reporting for your applications per environment.
What are your favourite must-have tools when setting up a project?
Nona designs and builds software products your users will tell their friends about, and teams to keep it that way. If you’d like to soundboard your tech or your team, book a consultation with our Chief Customer Officer, Dr Carl Thomen.