The language that gives you the power to write code for almost any platform is JavaScript.

Yes, that’s right, the programming language that some programmers love to hate gives you what I consider to be superpowers.

“JavaScript is a language with more than its share of bad parts.”-Douglas Crockford

Let’s dive into an overview of how to tap into those superpowers:

Native Mobile Applications using React Native

React Native allows you to write native Android and iOS apps using JavaScript.

To get started with React Native I recommend going through the awesome tutorial. Once you’re done with that checkout this great boilerplate.

Native Desktop Applications using Electron and React

Electron allows you to write cross platform (Windows, Mac, and Linux) apps using JavaScript, HTML, and CSS. Slack and Atom are built using Electron and it’s a great open source project maintained by GitHub.

I choose to use React whenever I use Electron but you could use Angular or any other framework/library.

To get started with Electron you should run through the great APIs demo and then afterwards checkout the quick start guide. If you plan on using React then I would recommend you use this boilerplate to get started.

Web Applications and Chrome Extensions using React (or any other framework/library)

Building web apps using JavaScript should come as no surprise to any web developers reading this and I’m only going to discuss how you can use React to build Chrome extensions.

Chrome Extensions allow you to add functionality to Chrome using HTML, CSS, JavaScript, and some APIs that Chrome exposes. To get started building extensions run though this great tutorial.

You can use React, Angular, or any other JavaScript library/framework to build your extension and I would recommend you checkout this boilerplate if you choose React.

Note: One issue you may run into while building your Chrome Extension using React and Redux is that your store will not persist between tabs. To solve this problem use the following utility.

JavaScript is not without pitfalls and all of the above libraries and tools are not perfect either. However, they are still fun and great to use and you should defiantly give them a try!