Nona Blog

Useful Tooling We Use at Nona

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.

Git Hooks

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

eslint – It’s the standard for Javascript and Typescript now. We have company-wide rules implemented for standardisation across projects.
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.

Dependencies

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.

Slack Integrations

github slack integration – For build statuses.
pull panda – For PR reminders and updates from within Slack.

Help

package-json-help – NPM package to add a help.json file for quick helpful description of npm commands available.

Testing

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.

React/React Native

storybook – Allows development of components in isolation. Also allows a client to view components being developed independent of the app.

Logging

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.

Jon Arnold

Jon Arnold

Senior Fullstack Developer - Nona

Add comment