We're actually really happy with our setup on the Apollo Client repository, and we even blogged about it.
Here is a summary of what has been particularly helpful:
- TypeScript to get static typing and great editor integration with VS Code. This saves us from a huge potential set of refactoring errors, and is especially useful since we have to often deal with quite complex data structures. We also looked at Flow, but the simpler setup of TypeScript was a big win for getting contributors going quickly.
- Unit tests on CI, with test coverage reports on Coveralls. These really help us ensure that our tests are passing, and that all significant logic in the package is well-tested.
With these tools set up, we are pretty confident that if our CI builds pass the final build will work for people, although no setup is perfect of course.