Strangely Typed

Software engineering blog by Adam Rackis

Hi, I'm Adam 👋

Welcome to my blog. I usually write about web development—the React or Svelte stacks in particular—or occasionally GraphQL, databases, or anything else I'm interested in.

Swift - Encoding and decoding `Any`

How to encode and decode json with concrete types, which include dynamic pieces typed as `Any`

Building Interoperable Web Components That Even Work With React  

on css-tricks.com

An introduction to building web components, and then using them with JavaScript frameworks like Svelte and React

Inline Image Previews with Sharp, BlurHash, and Lambda Functions  

on css-tricks.com

Displaying image previews with Base64 encoding, and Blurhash

Syntax Highlighting (and More!) With Prism on a Static Site  

on css-tricks.com

A deep dive on integrating Prism with Next.js for code highlighting

Setting Up CloudFront to Host Your Web App  

on css-tricks.com

Hosting your entire web app with AWS Cloudfront

Adding CDN Caching to a Vite Build  

on css-tricks.com

Using AWS Cloudfront to serve static assets

Subsetting Font Awesome to Improve Performance  

on css-tricks.com

How to pick only the Font Awesome icons you want for smaller bundles

Demystifying TypeScript Discriminated Unions  

on css-tricks.com

Explaining TypeScript unions, and discriminated unions

Making a Site Work Offline Using the VitePWA Plugin  

on css-tricks.com

Diving deeper into Vite, and using the VitePWA plugin to improve your site's performance

Adding Vite to Your Existing Web App  

on css-tricks.com

A fun, painless introduction to Vite

React Suspense: Lessons Learned While Loading Data  

on css-tricks.com

A deeper dive into data loading with Suspense

The What, Why and How of DynamoDB

A high-level introduction to DynamoDB

Svelte for the Experienced React Dev  

on css-tricks.com

A high-level introduction to Svelte, from the perspective of an experienced React developer

Coordinating Svelte Animations With XState  

on css-tricks.com

An introduction to XState, for simplifying Svelte animation code

Svelte and Spring Animations  

on css-tricks.com

A deep dive into Svelte's spring animation features

Integrating TypeScript with Svelte  

on css-tricks.com

Manually adding TypeScript to a non-greenfield Svelte project

Pre-Caching Images with React Suspense  

on css-tricks.com

Using Suspense to block a component's rendering until its images have loaded

How to Use CSS Grid for Sticky Headers and Footers  

on css-tricks.com

A beginner friendly introduction to CSS Grid, with examples implementing sticky headers and footers

Making Sense of react-spring  

on css-tricks.com

Understanding how react-spring works, and how to leverage it for common animation use cases

Building Your First Serverless Service With AWS Lambda Functions  

on css-tricks.com

A beginners introduction to the Serverless framework

React Suspense in Practice  

on css-tricks.com

A practical, hands-on tutorial to React Suspense

Suspense Explained

A walk through of the family of React features commonly all referred to as "Suspense"

Wrangling useReducer, from action creators to typings

A walk through of the various ways useReducer can be made more ergonomic, from simulating Redux-like action creators, to adding typings to vanilla `useReducer` via TypeScript.

Loading css, css-modules, and Sass with webpack

An introduction to loading css with webpack, and enabling css-modules, and SASS in the process

A Different Approach to GraphQL Caching

A tour of GraphQL caching with micro-graphql-react.

Hooks, State, Closures, and useReducer

A brief look at how useReducer can simplify your code, particularly with effects and closures.

Making Sense of Offline Web Development

Make your web apps work offline with Service Workers and IndexedDB.

New Beginnings

My first post on my new blog

Making your web app work offline  

on css-tricks.com

A gentle introduction to offline web development