Graham's articles
![JavaScript Decorators: What They Are and When to Use Them](https://uploads.sitepoint.com/wp-content/uploads/2017/06/1496788468DecoratorsB-01.png)
What are decorators? How do they work, and what are they useful for? Graham Cox explains all in this helpful introduction to JavaScript decorators.
![Ember.js: The Perfect Framework for Web Applications](https://uploads.sitepoint.com/wp-content/uploads/2015/03/1425997476emberjs-logo.png)
Ember.js lets you scaffold and build complex frontend web applications quickly. Graham Cox explores this popular, batteries-included JavaScript framework.
![Add Social Login via Google & Facebook to Your Single-page App](https://uploads.sitepoint.com/wp-content/uploads/2017/07/14998469292017.07.12-social-login-spa.png)
Adding social login to your SPA needn't be a difficult task. Graham Cox demonstrates how to easily authenticate your users via Google and Facebook.
![BDD in JavaScript: Getting Started with Cucumber and Gherkin](https://uploads.sitepoint.com/wp-content/uploads/2017/06/1498483972Cucumber_for_BDD.png)
Graham Cox introduces Cucumber, a framework that runs BDD-style acceptance tests, which can be understood by non-technical people involved in a project.
![Building your Front End with Maven: Simple Resources](https://uploads.sitepoint.com/wp-content/uploads/2017/04/1492832979maven-resources.jpg)
Learn how to process your resource files with Maven, be it templated files, conversion of LESS/SCSS to CSS or of Markdown/Ascissdoc to HTML.
![How to Run Multiple Versions of All Your Dev Tools with Jenv](https://uploads.sitepoint.com/wp-content/uploads/2017/04/1493285194jenv-tools.jpg)
The jenv tool allows for easy management of multiple versions of Java-based tools. With jenv versions can easily be set system-wide or for single shells.