Simple Remote Data in Typescript

Introducing Simple Remote Data (SRD), a Static Land compliant TypeScript library for managing state from remote sources. SRD’s top features are: Only 549 bytes minified and gzipped, that is ridiculously small! Built with Higher Kinded Types (HKT’s) to allow Typescript to infer these complex disjoint union types. Static Land compliant! Made for React or any other JS based frontend framework. What is a Remote Data type? A Remote Data type is a kind of discriminate union type in functional programming for managing the state of some data that is retrieved remotely and asynchronously, such as http response data, websockets, server sent events, reading a file, or any other async IO.
Read more →

Elm’s Remote Data Type in Javascript

Often in web development there is this recurring pattern of having to fetch some data from some server through a rest api, and then show it someway in the UI. This often includes storing this data somewhere on the client side, either in a store or just a variable you can reference, and this is where the Remote Data type can help. Usually saving the data would look something like this in JS:
Read more →

F# for JS Devs

I recently gave an internal talk at my work about the similarities of F# compared to JS. It was generally well received, and I would like to convert that talk into a blog post for others who may be interested. This is by no means an exhaustive list of features in F#, but the point of this post is to show familiar JS code and how it can be written equivalently in F#, because I believe showing examples like this is the best way of learning a new language and has a better chance of adoption.
Read more →

Basic monads in Javascript

I’m going to explain some common monads that you can start using in your javascript today. Monads will help make your code easier to read, more maintainable and most importantly - safer. Maybe The Maybe monad is used for dealing with nullable data. Often we like to process data in javascript, like formatting, doing calculations, filtering and sorting. But often we need to make sure the data is there before doing anything.
Read more →