How to Make Your App
10 Times Better
with 11 Lines of Code

Once in a while, I find a product so good that it makes a measurable impact on my happiness, our company bottom-line, or both. In those rare occasions where I find such a product that I want to share with other developers, I’ll invite the company to participate in a sponsored post.
I will only write sponsored posts for things that I know, use, and love. I’ll never endorse any product that I don’t believe in. That’s a promise you can trust.
~ Eric Elliott

I’ve spent most of my career helping companies make their web applications better. I spent the first half of my career as a consultant dedicated to user experience optimization with a particular focus on growth (how to get users to share your product) and conversion rates (how to get users to do what you want them to do).

All my best advice can be summed up in three words:

Listen to Users

Every time I start to build a new software development team, my top priority is to shorten the user feedback loop. The user feedback loop is an essential tool in High Velocity Development. It’s the best and fastest way I know to discover and optimize product/market fit.

  1. Discover user needs.
  2. Design a solution to those needs.
  3. Implement the design in code.
  4. Release the product.
  5. Collect user feedback and bug reports to discover and prioritize required changes.

The last step is where Usersnap comes in. The concept is simple: an easy way to get feedback from users. I’ve seen lots of other products offering similar services, but this one has a twist:

Instead of a simple contact form, Usersnap automatically grabs a screenshot of the user’s screen, and lets users annotate the screenshot to point out the problem they’re having. As we’ll see later, Usersnap also helps with the design step.

Fix Your Bugs

An important part of fixing bugs is identifying which bugs are annoying your users. With Usersnap’s feedback widget always available, your users will be able to tell you what’s bothering them as it happens.

Logging errors

Sometimes things don’t work because there’s an error on the page. Usersnap has the ability to record developer console output and send it to you with the screenshot. You have to opt in to console recording using the widget customization dialog:

“Enable console recorder” option.

Integrating Usersnap

Integrating Usersnap is a breeze. When you sign up, they take you on a guided tour to get you started. Just follow the wizard.

As the title implies, the embed is just 11 lines of code, loaded asynchronously, so it won’t block your page load:

Usersnap code screenshot

And there are configuration options for several content-management systems.

Embed options

They have plugins for WordPress, Drupal, Joomla, Magento, etc… Most of the big players are covered, and for those that aren’t, the HTML embed should do the job.

WordPress Plugin

Slack Integration

Here’s what some real user feedback looks like in Slack. I love that users can circle & highlight the specific things they’re giving feedback about:

Behind the Curtain

Usersnap feedback messages are called “screens” because they all include screenshots. Inside the Usersnap dashboard, you’ll get realtime notifications whenever somebody leaves feedback or updates an existing screen.

New screen notification

Screens are listed in two categories: Open (for new screens) and Closed (for resolved Screens). This is great for tracking bug report status:

To the left of each screen is a checkbox. Checking it has the effect of moving it to the closed screens category.

Clicking on a screen reveals the detail view. There are several cool features worth mentioning here:

Usersnap screen detail

On the left side, you’ll see important information such as the user’s browser/ OS combination, screen size, browser size, the user’s installed plugins, and a realtime activity timeline. On the right side, you’ll see the screenshot that was captured, complete with user annotations (in this case, the green circle around the video).

Underneath the screenshot, you’ll see a log of console messages. What’s interesting about that report is that you can click on the arrows in the messages to drill down into the object.

Drilling down into a console object

One interesting caveat: The screenshots won’t display remote embeds — instead, they show up as a textured box with an error message.

Cross-Origin content error

If you see this in a screen, don’t panic! there’s a really good chance that the user actually saw the right thing.

Better User Bug Reports

As you can see, Usersnap provides a great level of detail any time a user submits a bug report using the tool, and the tools that users might need to point out the specific parts of the screen that is giving them trouble. What tools, exactly?

Usersnap tools unleashed!

A pen tool that lets the user draw on the screen using a variety of colors and brush sizes, an arrow tool, sticky-note style notes, and of course, the message box that allows them to compose a message. The full list at the time of writing:

  • Comment
  • Pen
  • Note
  • Highlight
  • Arrow
  • Blackout
  • Pixel Ruler

As you can see, I’ve disabled Blackout and Pixel Ruler in “Usersnap tools unleashed” example above. You can do that on the Widget Customization screen inside Usersnap.

Customizing the Usersnap Widget

You can also change the widget’s theme color to match your site design.

Design Collaboration

An interesting side-effect of this particular set of image annotation features is that design teams can use it to collaborate in realtime on your product design assets. Usersnap’s dashboard lets you upload and annotate any image, and it’s easy to create a new project for your product design team to use. Projects make it easy to keep your designs and your bug reports in separate silos.

Usersnap Projects Dashboard


After adding Usersnap to my site, more customers started leaving valuable, actionable feedback, which we have used to make changes to our products. Our users feel more involved and committed to the product because they helped make it better.

  • Better bug reports
  • More actionable user feedback
  • Better product as a result

I’m loving Usersnap, and I intend to keep using it in our future software products, shopping carts, and blogs. If you don’t have something similar, you may be missing out on a huge opportunity to improve your alignment with your users and customers.

Eric Elliott is the author of “Programming JavaScript Applications” (O’Reilly), and host of the documentary film-in-production, “Programming Literacy”. He has contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He spends most of his time in the San Francisco Bay Area with the most beautiful woman in the world.