If you’ve been following Bitcoin, you’ve probably heard of the Lightning network: a layer 2 solution to the on-chain scaling problems that Bitcoin faces that allows for near-instantaneous payments with extremely low fees.

The Lightning network has caught fire over the last year, with over 8,000 nodes online and over 1,000 BTC in public channels. We’ve also seen a ton of cool applications pop up that take advantage of Lightning’s micropayments.

Whether it’s paying for the latest Y’alls post, making pixel-per-sat doodles on Satoshis.place, or taking a chance to win big on Lightning Spin, these have all been exciting examples of what we can do with the Lightning network.

But even so, it hasn’t been easy to get started as a developer to get started with making a Lightning-powered web app of your own. So that’s why I’m putting together this 5-part series on how to make a Lightning app, using the latest industry-standard tech.

Let’s take an overview of what we’ll be using:

Prerequisites

Node ≥ 8 for package management and development

An LND node with some channels open

If you haven’t yet setup a node, I recommend following Pierre Rochard’s Lightning Node guide, or downloading the Lightning app from Lightning Labs. These make getting started a breeze.

If you’re a more advanced user and aren’t afraid of a little setup, you can run a local simulated network to be able to test multi-user behavior without having to use real bitcoin or wait for block confirmations.

The Stack

To build our Lightning app, we’ll be using the following technology:

Express for our webserver

React + Webpack + Bootstrap for our frontend

TypeScript for all of our code

If you’re already familiar with Javascript but not Typescript, don’t be concerned about continuing on. It’s not an entirely new language, and it’s easy to get into. And hopefully by the end of these tutorials, you’ll see how much easier it is to develop with compiler-checked code!

If you’re not familiar with React or Express, I suggest taking just a little bit of time to brush up on them before moving on, as we won’t be covering the basics. But it shouldn’t be difficult to follow along, even if you’re fairly new.