Steve Ruiz

  1. Home
  2. About
  3. Archive


  • Refreshing the Next.js App Router When Your Markdown Content Changes

    How to refresh the Next.js App Router when content in a folder changes. Yes, websockets.

  • The Smooshed Object Union type in TypeScript

    A utility type for creating keyable union of object types.

  • Increment a Name in TypeScript

    How to increment a name to avoid duplicates.

  • All About Arcs

    Hard-won helpers for working with arcs.

  • Copy to Multiplayer Project

    How I used Liveblock's Storage APIs to create a new feature.

  • Reordering Part 2: Tables and Fractional Indexing

    Implementing reordering commands (Send to Back, Send Backward, Bring Forward, and Bring to Front) in using fractional indexing.

  • Reordering Part 1: Arrays

    Implementing ordering commands (Send to Back, Send Backward, Bring Forward, and Bring to Front) in an array of items.

  • Dead Zone Dragging

    Improve dragging experience by adding a spooky dead zone, or a minimum distance before a shape will begin to drag.

  • Perfect Dragging

    How to drag shapes the right way. And yes, there is a wrong way! But trust me, this is the right way.

  • Fixing the Drift in Shape Rotations

    A look at an obscure bug common to drawing programs, where rotations can cause shapes to move to new positions.

  • Creating a Zoom UI

    All the code you need to control a camera in a zoom-able, pan-able UI for an infinite canvas.

  • Filtering an Object in TypeScript

    How to filter properties from an object.

  • Figma's Interactive Components Were Not Designed For This

    A survey of the bizarre prototypes designers can now make in Figma.

  • Making a Rotating Icon Button in React

    A tutorial on building my this blog's theme-switching microinteraction.

Steve Ruiz © 2023

hey click here