Angular Directives

How to create an Angular directive to write and parse markdown to HTML using Stackedit.js

The Stackedit Editor inside a Web Application

Why use Stackedit?

Stackedit is a popular and widely trusted in-browser markdown editor. It is an open-source and full-featured editor based on PageDown, the WYSIWYG-style Markdown library used by Stack Overflow.

As it is a Progressive Web Application (PWA) that you can download and use as a desktop application.

Here are its’ main…

Headless Chrome

A fast and simple way to interact with browsers supporting the Chrome DevTools Protocol in Go.

Photo by NASA on Unsplash

An easy, performant web scraper, crawler, pre-rendering solution, or screenshotting tool

What is Chromedp?

Chromedp is a fast, simpler way to interact with the Chrome DevTools Protocol without any external dependencies, such as selenium or phantomjs, that you’d find in other implementations.

It is a lightweight Go implementation.

All you need is Chrome…

Here are the concurrency best practices for predictable, reliable, and bug-free Go code.

Gopher in a fire
A Gopher not abiding by the rules

Concurrency in Go

Go is well-known and loved for its concurrency. The go runtime manages lightweight threads called goroutines. Goroutines are quick and simple to write.

You just type go before the function you want to execute asynchronously, in another thread.

Sounds easy enough?

Goroutines are Go’s way of writing asynchronous code.



Angular doesn’t have a learning curve, it has a learning cliff. But which parts are the hardest to grasp?

Sitting on the Angular Learning Cliff

“Angular is beginner friendly”

— Not a single person

A Complete JavaScript Web Framework

Angular is one of the most popular JavaScript frameworks. Developed and maintained by Google, it is used to build modern Single-Page Application’s (SPA’s), and Progressive Web Application’s (PWA’s).

As a complete framework, it has everything you need for a JavaScript web…


A simple walkthrough on creating an API with a server, written in Go, to deploy to Google App Engine.

Google App Engine is Platform as a Service (PaaS). It aims to make deployment easier. It is fully managed, pay-as-you-go, high availability, it ensures a fast time to market, and supports a wide variety of programming languages.

App Engine allows you to build scalable web and mobile back-ends with traffic…

What does it mean for the network, building on it, and crypto mining?

hills highlighted by the sun rising behind them
Photo by Wes Hicks on Unsplash

The Bitcoin and Monero (XMR) communities remain some of the most committed to the concept of proof-of-work.

Ethereum’s Long-Awaited Upgrade

It feels like it has been coming for ages. That’s because it has. It has been in the works for years and discussed since 2018. Ethereum 1.0 had concerns over scalability and security…

An easy way to automate the creation of sitemap.xml files, using Firebase Firestore data, that reflects our growing web content.

Reading your Firestore data

Modern Sitemaps Need Automation

The sitemap.xml file is one of the most important files for search engine robots and spiders. It provides information about the pages and the relationships between them. It is the first thing that robots look at when it comes to your site.

Not usually for human consumption, robots (crawlers) look…

Angular Tips

Understanding the right way to pass data to Dumb Angular components through NgOnChanges and Input bindings.

A dumb dog being dumb

How Components Interact in Angular

Angular components have multiple ways to share information with other parts of the application. Developing a complex Angular app will involve a lot of data, and subsequently a lot of interaction between components.

Once you learn the methods that are used to handle data in components, it becomes easy to…

TypeScript Refactoring

Optional Chaining offers a new way to refactor our TypeScript and JavaScript code. TypeScript 3.7 presents Elvis (?.)

Photo by Michèle Eckert on Unsplash

The optional chaining operator is supported all popular browsers except IE, Firefox for Android, Opera for Android and Samsung Browser.

The Elvis Operator ?. (AKA Optional Chaining)

JavaScript moves fast and, as a result, TypeScript moves fast with it to push new features and innovations in the way we write JavaScript.

All with the aim to increase…

Lewis Fairweather

Software Engineer | Co-Founder @

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