In general, we don't want to have to rely on users to actively provide error reports or other feedback. Most users won't bother to report errors or slowness, they'll just quit. Instead, we want to automatically log as much as we can.
-
Most importantly, automatic exception tracking. If there's ever an actual 500 exception (as opposed to a 404 or some other "tolerable" error), we want it to be automatically logged with as much detail as possible.
We don't want a user to have to report it, then try to figure out how to duplicate it, then watch the
heroku logs
to find out what happened (since usual error messages don't appear in the browser in production mode).There are many exception monitoring services available. I usually start with Rollbar, as it has a decent free tier. Try reading the docs and installing it:
-
Performance profiling. This is what gives us the confidence to not pre-maturely optimize our code for performance; instead we optimize our code for readability, and then we measure performance, and then only if we need to we optimize bottlenecks.
Try reading the docs and installing Skylight:
-
Finally, for some things we do want to encourage active user feedback. It could be questions about how to use the product if they get stuck, or any other non-500 type issues that Rollbar doesn't automatically log.
Try reading the docs and installing Crisp: