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.

Introducing Drizzle  

on Frontend Masters

An introduction to one of the more unique ORMs out there: Drizzle

Testing Types in TypeScript  

on Frontend Masters

You already know you can unit test your code. But did you know that you can also unit test your advanced TypeScript types? This post walks you through it

Combining React Server Components with react-query for Easy Data Management  

on Frontend Masters

An introduction to React Query Components, and how to use react-query to streamline data loading

Prefetching When Server Loading Won’t Do  

on Frontend Masters

A guide to prefetching data for when server rendering isn't feasible, and streaming isn't available

Using Auth.js with SvelteKit  

on Frontend Masters

A guide to implementing authentication with Auth.js in SvelteKit

Caching Data in SvelteKit  


A deep dive into the various ways data can be cached in SvelteKit

Getting Started With SvelteKit  


An introduction to SvelteKit, a Svelte-based application Meta Framework

Using Web Components With Next (or Any SSR Framework)  


A guide to using web components in application metaframeworks like Next

Introducing Shoelace, a Framework-Independent Component-Based UX Library  


An introduction to Shoelace, a web component-based, ux component library

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  


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  


Displaying image previews with Base64 encoding, and Blurhash

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


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

Setting Up CloudFront to Host Your Web App  


Hosting your entire web app with AWS Cloudfront

Adding CDN Caching to a Vite Build  


Using AWS Cloudfront to serve static assets

Subsetting Font Awesome to Improve Performance  


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

Demystifying TypeScript Discriminated Unions  


Explaining TypeScript unions, and discriminated unions

Making a Site Work Offline Using the VitePWA Plugin  


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

Adding Vite to Your Existing Web App  


A fun, painless introduction to Vite

React Suspense: Lessons Learned While Loading Data  


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  


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

Coordinating Svelte Animations With XState  


An introduction to XState, for simplifying Svelte animation code

Svelte and Spring Animations  


A deep dive into Svelte's spring animation features

Integrating TypeScript with Svelte  


Manually adding TypeScript to a non-greenfield Svelte project

Pre-Caching Images with React Suspense  


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

How to Use CSS Grid for Sticky Headers and Footers  


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

Making Sense of react-spring  


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

Building Your First Serverless Service With AWS Lambda Functions  


A beginners introduction to the Serverless framework

React Suspense in Practice  


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  


A gentle introduction to offline web development