Skip to main content
Dublin Library

The Publishing Project

Running a specific version of Node

One of the biggest pains of working with Node is when either a library you're working with is pinned to a specific version of Node or you must pin your project to a specific version because one or...

Import Maps Everywhere

Javascript import maps provide a mapping between local names and external modules. Using Import Maps is a two-step process. First, you create a script with a type="importmap" attribute to...

Node's Permission Model

With the release of Node 20, the team introduces an experimental permissions API. There are two types of permission available with this version of the API: Module-based permissions control which...

Understanding Streams

The Streams API adds a set of tools to the web platform, allowing JavaScript to programmatically access streams of data received over the network and process them as desired by the developer. Basic...

Read and Write Files in Node

Reading, writing, and appending to files in Node is not trivial and has at least three different ways to perform each task: callback, sync callback, and promises. We will look at each of these methods...

Revisiting the TC39 Temporal Proposal

The Javascript Temporal proposal seeks a native fix for long-standing isues with Javascript's Date object as outlined in Fixing JavaScript Date: No support for time zones other than the user’s local...

CSS image-set

CSS provides its own syntax for working with responsive images where it is appropriate. This works in a smiliar way to the srcset attribute in HTML. It lets authors specify images either by resolution...

Building a fuller Starter Kit

I've built a Gulp system to generate HTML and PDF files. It works really well for that purpose. I saw Adam Argyle's Shortstack starter project and it made me think it might be time to revisit bundling...

Why I love @property in CSS

CSS Custom Properties (also known as CSS Variables) rock but they are not without drawbacks. Since you can put any value and change the values, the browser will treat the value as a string and force...

Archive Navigation