Profile pic

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 Zustand

on Frontend Masters

A quick introduction to Zustand, a simple, fun and effective state management library for React

Satisfies in TypeScript

on Frontend Masters

Some quick coverage of one of TypeScript's less commonly used features: satisfies

Introducing TanStack Start

on Frontend Masters

A high-level introduction to TanStack Start, featuring integration with react-query

Introducing Fly.io

on Frontend Masters

An introduction to the Fly.io platform

Drizzle Database Migrations

on Frontend Masters

Using Drizzle to manage and sync your database schema

Loading Data with TanStack Router: react-query

on Frontend Masters

Integrating TanStack Router with react-query for rich, fine-grained data loading

Loading Data with TanStack Router: Getting Going

on Frontend Masters

Using TanStack Router's built-in features to load, and invalidate data

Introducing TanStack Router

on Frontend Masters

An introduction to TanStack Router, showing type-safe routing

Java Optionals

on Frontend Masters

An introduction to Java Optionals

Fine-Grained Reactivity in Svelte 5

on Frontend Masters

A deep dive into Svelte 5's fine-grained reactivity

Snippets in Svelte 5

on Frontend Masters

An introduction to Svelte 5 Snippets

Introducing Svelte 5

on Frontend Masters

An introduction to Svelte 5, covering the basics: state, props and effects

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

on css-tricks.com

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

Getting Started With SvelteKit

on css-tricks.com

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

Using Web Components With Next (or Any SSR Framework)

on css-tricks.com

A guide to using web components in application metaframeworks like Next

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

on css-tricks.com

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

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