Get More Productive With Our
Industry Recommended
Developer Tools

We're All About Developer Happiness

The right tools are crucial for the right delivery and efficiency. We have invested in building tools that help developers become more productive while staying focused on doing meaningful work. Some of our tools have become the recommended way of testing by thought leaders and core team members of the popular web technologies we support.

Our Tools & Products


Angular makes heavy use of RxJS Observables. Traditionally, testing complicated observables was super hard and the only way to test them was to use a very complicated way called "Marble Testing". 
The Observer-spy library was created to give an easy to use and simple alternative to marble tests and has become the recommended tool to use by members of both RxJS  and NgRx teams. 


Auto Spies provides an easy and type safe way to write spies and mocks for both Jasmine and Jest tests. It handles the usual synchronous methods but also asynchronous methods that return either promises or Observables. This library also has utility methods to create pre-configured fake observables and together with observer-spy completely removes the need for marble testing altogether. 


Lembas enables a way to take cached snapshots of the database during the smoke testing setup phase. 
With this ability smoke tests become smaller, faster, more reliable and reproducible in the CI server.

It is flexible enough to allow you to define your own snapshot & restore logic.
If the smoke test is the "Critical User Journey".. we need food for this journey. And "Lembas" (the Elvish way-bread) is the best food we can get for our journey (god we are nerds... 😅🤦‍♂️)


Inspired by the testing structure convention from Behavior driven development (Given, When, Then).

Single provides a perfect testing structure for single action test cases and solves the issues more traditional testing structures introduce. 

What Our Users Say

We have implemented these observer-spy tests for our consumer product and it has been a lifeline. Most of our devs know how to write syncronous tests pretty well, but we never tested our asyncronous code . . . until now! Your package is fantastic and really easy to use.

Ben Rinehart

Observer-spy by gives you a really nice way to subscribe to observables and validate their result. That is the approach I'd recommend most developers when their tring to unit test their observables.


We recently added this to a project we working on at work. It really makes writing tests for Effects more straight forward. Using marbles is ok, but difficult to get the concepts when you're just starting NgRx and you want to write tests for your Effects (like all good developers should). Observer-spy is a great alternative, thanks Shai