JavaScript! Why?

  1. Better composability
  2. Faster development

Type Safety Bugs

I spend about 1% of my time dealing with types and type related bugs in JavaScript. To be fair, I use Prettier, ESLint, & BDD with VS Code, so most type safety bugs get knocked down before production anyway.

Eric Elliot has a good post on this called, The TypeScript Tax.

TypeScript is JavaScript’s Aircraft Carrier

To draw an analogy, JavaScript is a jump-jet and TypeScript is an aircraft carrier; And even though TypeScript is safe, it’s still not safe enough to run a nuclear power plant.


TypeScript’s classes don’t get me excited, because I don’t use classes. …

In this guide you will learn how to scaffold a Monorepo to manage multiple Create React Apps that share common components, with a Storybook.

UPDATE: 2019/07/17

Please use React Workspaces Playground, instead of this guide. React Workspaces Playground is a supported codebase where you can test drive everything in this guide with the latest version of React and Storybook. This guide demonstrates how to achieve similar effects via monkey-patching - a bad practice that is difficult to maintain. Please review my React Workspaces slides for more information.


This guide demonstrates a React Pattern for sharing global state, without requiring any of the following:

  • 😒 Prop-Drilling
  • 🔥 Redux
  • 💲 MobX
  • 🏀 Apollo Link State

(The above emojis were auto-selected by Emoj)

The Context API

Recently I found myself at an Advanced React Training with Michael Jackson (no… not the King of Pop, the King of React Router 😉). We spent a good deal of the time working through Higher Order components and the new React Context API.

Being so new to The React Way, (yet so familiar with frameworks like Angular), I was surprised that React didn’t ship with any built-in…

This guide will show you how to use the Node Module Chromafi to highlight code in your Command Line Interface.

These steps outline the process of setting up a development platform on which you can build Hybrid Mobile apps.

This includes:

  • Cordova + Webpack + Vue.js
  • Unit Testing with Jest/Mocha-Karma
  • Functional Testing with Nightwatch
  • Preview your app in the Web Browser
  • Hot/Live Reload your app in the browser when you make changes
  • Build to Android/iOS mobile devices

What is a Hybrid Mobile App?

A “Hybrid Mobile App” is Website running inside of Native application. The Web View portion of the code (all the screens and the code that happens when you click the buttons), is interpreted at run-time. …

It becomes useful to toggle Word Wrap on and off when using multiple split panes during development. For example: you may want to multi-line edit the content at the start of 10 lines; this is impossible if your content is wrapped. Yet it becomes frustrating to read text copy when it flows over the right edge of the screen, forcing you to scroll around.

While reaching for Sublime Text > Tools > View > Word Wrap is simple, it can break your flow. …

This guide walks you though creating a Cordova app for Push Notifications on iOS and Android. We will use the Apache Cordova platform and the Amazon SNS service to build and test our Push Notifications.

There is a lot to learn about Push Notifications, but the intention here is to get you up and running with a proof of concept.

You will need:

  • MacOS High Sierra — 10.13.1
  • Homebrew — 1.4.0
  • Node.js — v9.2.1
  • NPM — 5.5.1
  • Xcode — 9.2 (9C40b)
  • Git — 2.13.1
  • Cordova — 7.0.1
  • Gradle — 4.4

Useful Terminology

  • APNS — Apple Push Notification Service
  • GCM — Google Cloud Messaging
  • FCM —…

Alistair MacDonald

Senior User Interface Engineer @

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store