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.
A quick introduction to Zustand, a simple, fun and effective state management library for React
Some quick coverage of one of TypeScript's less commonly used features: satisfies
A high-level introduction to TanStack Start, featuring integration with react-query
Using Drizzle to manage and sync your database schema
Integrating TanStack Router with react-query for rich, fine-grained data loading
Using TanStack Router's built-in features to load, and invalidate data
An introduction to TanStack Router, showing type-safe routing
A deep dive into Svelte 5's fine-grained reactivity
An introduction to Svelte 5, covering the basics: state, props and effects
An introduction to one of the more unique ORMs out there: Drizzle
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
An introduction to React Query Components, and how to use react-query to streamline data loading
A guide to prefetching data for when server rendering isn't feasible, and streaming isn't available
A guide to implementing authentication with Auth.js in SvelteKit
A deep dive into the various ways data can be cached in SvelteKit
An introduction to SvelteKit, a Svelte-based application Meta Framework
A guide to using web components in application metaframeworks like Next
An introduction to Shoelace, a web component-based, ux component library
How to encode and decode json with concrete types, which include dynamic pieces typed as `Any`
An introduction to building web components, and then using them with JavaScript frameworks like Svelte and React
Displaying image previews with Base64 encoding, and Blurhash
A deep dive on integrating Prism with Next.js for code highlighting
Hosting your entire web app with AWS Cloudfront
How to pick only the Font Awesome icons you want for smaller bundles
Explaining TypeScript unions, and discriminated unions
Diving deeper into Vite, and using the VitePWA plugin to improve your site's performance
A deeper dive into data loading with Suspense
A high-level introduction to DynamoDB
A high-level introduction to Svelte, from the perspective of an experienced React developer
An introduction to XState, for simplifying Svelte animation code
Manually adding TypeScript to a non-greenfield Svelte project
Using Suspense to block a component's rendering until its images have loaded
A beginner friendly introduction to CSS Grid, with examples implementing sticky headers and footers
Understanding how react-spring works, and how to leverage it for common animation use cases
A beginners introduction to the Serverless framework
A walk through of the family of React features commonly all referred to as "Suspense"
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.
An introduction to loading css with webpack, and enabling css-modules, and SASS in the process
A tour of GraphQL caching with micro-graphql-react.
A brief look at how useReducer can simplify your code, particularly with effects and closures.
Make your web apps work offline with Service Workers and IndexedDB.
My first post on my new blog