JSPM - React starter kit

November 2, 2015

Jspm is a package manager for the SystemJS universal module loader, built on top of the dynamic ES6 module loader.

In my last post, I walked through the process of setting up webpack for react development. This time I’ll show an alternative with jspm that come with few advantages:

  • Write code and run it without a building step.
  • Babel comes with JSPM.
  • Easily installs React component.
  • ES6 modules support other extensions other then .js (like .jsx)

If you were just looking for a quick and minimal starter setup, go ahead and fork my jspm-react starter kit, otherwise continue reading as I’ll walk you trough that setup.

Installing jspm

Install jspm

$ npm install -g jspm

Initialize jspm for the project

$ jspm init

Add jsx to extend the es6 module loader to support .jsx files

$ jspm install jsx

Pull react and react-dom via jspm

$ jspm install react
$ jspm install react-dom

That’s it, no configuration needed, jspm will do its magic for us. We can now just require and use react to build … ***

A simple app

Let’s imagine that we have the following javascript file:

  • index.js

    It doesn’t do much, apart rendering a header on the page using react-dom. It has react and react-dom as dependencies ,and use ES6 and JSX syntax.

import React from 'react';
import ReactDOM from 'react-dom';

class Home extends React.Component {
  constructor() {

    this.state = {
      subject: 'World!'

  render () {
    return <h1>Hello {this.state.subject}</h1>

ReactDOM.render(<Home />, document.getElementById('app'));

Note: Instead of relying on React.createClass, we rely on the ES6 classes syntax. We can now require the app from a HTML file:

<!doctype html>
<meta charset="utf-8">
<div id="app"></div>
<script src="jspm_packages/system.js"></script>
<script src="config.js"></script>

That’s it, just load the html in the browser and enjoy!

Some jspm extras.

Jspm doesn’t come with a dev-server as the one you can find in webpack. No worry, you can quickly install the jspm-server and have it serve your app within seconds live reload included!

$ jspm i -g jspm-server

Make sure to set the System trace property to true from the html file to enable live reloading via web sockets.

    System.trace = true;

To help you kickstart your development with react using JSPM fork the jspm-react starter kit

comments powered by Disqus