shisinbin's Blog

Latest Posts

How I Rebuilt a Search System

Implementing a good text-based search in a web dev application might initially seem straightforward. You just have to filter one or more fields using a raw string, right? Well, as I learned when trying to refactor an older search system, it can be a lot more complex. Like a hell of a lot more.

Read more
Making a Partial Backup of a Django app database

Ever wondered how to make a partial backup of a PostgreSQL database? How you could make use of shell environments to poke and prod at it safely? How you can then transfer said backup safely across oceans to your computer? Then look no further, the answers all lie within...

Read more
How I Set Up My New Mac for Django Development

Moving development of an existing Django app from one computer to another can be a stressful experience, especially if you're not used to the various things that go on behind the scenes. In this blog post, I'll describe how I set up a new Mac to maintain an existing Django app.

Read more
Understanding React Server Components in 2025

React Server Components have steadily evolved into one of the most transformative features in the ecosystem. As frameworks like Next.js continue to embrace server-first rendering models, RSCs offer a new mental model around data loading, performance, and client/server boundaries. In this article, we unpack what RSCs solve, where they fit into modern development, and the gotchas you'll want to avoid.

Read more
Motion Design for Developers — Transitions & State Changes

In the second entry in our motion design series, we dive into transitions and state changes — the subtle animations that bring interfaces to life. We'll explore best practices around timing, easing, rhythm, and how to establish a consistent motion vocabulary across your product.

Read more
Motion Design for Developers — Introduction

Animations aren't just decorative. They guide users, communicate state changes, and create moments of delight. This introduction kicks off a multi-part series that explores motion principles from a developer's perspective — with practical examples using modern tooling like Framer Motion.

Read more
Building Accessible Tooltips

Tooltips seem simple at first, but building them accessibly is surprisingly tricky. Keyboard navigation, focus management, ARIA attributes, dismissal mechanics, and timing considerations all play crucial roles. In this guide, we break down how to craft tooltips that are robust, inclusive, and production-ready.

Read more
CSS Architecture Foundations

Over the years, CSS has grown into a powerful and expressive language, but with that power comes complexity. In this post, we'll explore foundational ideas behind CSS architecture — concepts that help us keep large codebases understandable, flexible, and scalable as they evolve over time. Whether you’re working solo or part of a big team, these principles help ensure your stylesheets remain a joy to work with.

Read more