---
title: "Chloe Zhou (@chloezhoudev) | Hashnode"
description: "Frontend Engineer · Documenting what I build and break. Read the latest articles by Chloe Zhou on Hashnode."
url: "https://hashnode.com/@chloezhoudev"
---

@chloezhoudev

# Chloe Zhou

@chloezhoudev · Joined March 2026

Frontend Engineer · Documenting what I build and break

### [Building PetPaint (Part 2): Why the Cat's Face Always Looks Wrong](https://chloezhou.dev/building-petpaint-part-2-why-the-cat-s-face-always-looks-wrong?utm_source=hashnode&utm_medium=feed)

From SD v1.5 to Flux.1 Kontext — an engineering journey through the identity preservation problem

13 min read · [chloezhou.dev](https://chloezhou.dev/building-petpaint-part-2-why-the-cat-s-face-always-looks-wrong?utm_source=hashnode&utm_medium=feed)

[3](https://hashnode.com/posts/building-petpaint-part-2-why-the-cat-s-face-always-looks-wrong/6a348cf50cc689b415714050) [Jun 19](https://hashnode.com/posts/building-petpaint-part-2-why-the-cat-s-face-always-looks-wrong/6a348cf50cc689b415714050)

### [Building PetPaint (Part 1): From Local POC to Production Deployment](https://chloezhou.dev/building-petpaint-part-1-from-local-poc-to-production-deployment?utm_source=hashnode&utm_medium=feed)

I asked Stable Diffusion for a cat portrait. It gave me a vase.

9 min read · [chloezhou.dev](https://chloezhou.dev/building-petpaint-part-1-from-local-poc-to-production-deployment?utm_source=hashnode&utm_medium=feed)

[Jun 7](https://hashnode.com/posts/building-petpaint-part-1-from-local-poc-to-production-deployment/6a25162c330a70d7e76bec0e)

### [Migrating MUI in a Single-SPA Microfrontend — What the Official Docs Don't Tell You](https://chloezhou.dev/migrating-mui-in-a-single-spa-microfrontend-what-the-official-docs-don-t-tell-you?utm_source=hashnode&utm_medium=feed)

A chronological account of MUI v4 → v6 style conflicts in a single-spa microfrontend — dynamic conflicts, static CSS leakage, and what changes when you finally upgrade the child apps.

8 min read · [chloezhou.dev](https://chloezhou.dev/migrating-mui-in-a-single-spa-microfrontend-what-the-official-docs-don-t-tell-you?utm_source=hashnode&utm_medium=feed)

[May 16](https://hashnode.com/posts/migrating-mui-in-a-single-spa-microfrontend-what-the-official-docs-don-t-tell-you/6a07b673ea8975272b5a0e27)

### [Static CSS Leakage in Microfrontends — Why Shadow DOM Fails and How postcss-prefix-selector Fixes It](https://chloezhou.dev/static-css-leakage-in-microfrontends-why-shadow-dom-fails-and-how-postcss-prefix-selector-fixes-it?utm_source=hashnode&utm_medium=feed)

Static CSS in a child app was leaking into the host app — here's why Shadow DOM couldn't fix it and how postcss-prefix-selector solved it.

8 min read · [chloezhou.dev](https://chloezhou.dev/static-css-leakage-in-microfrontends-why-shadow-dom-fails-and-how-postcss-prefix-selector-fixes-it?utm_source=hashnode&utm_medium=feed)

[Apr 23](https://hashnode.com/posts/static-css-leakage-in-microfrontends-why-shadow-dom-fails-and-how-postcss-prefix-selector-fixes-it/69e9f8e416b084c068037352)

### [MUI v4/v5 Style Conflicts in single-spa — A Complete Debug Record](https://chloezhou.dev/mui-v4-v5-style-conflicts-in-single-spa-a-complete-debug-record?utm_source=hashnode&utm_medium=feed)

How I tracked down a shape-shifting UI bug caused by JSS and Emotion competing for insertion order in a single-spa microfrontend.

8 min read · [chloezhou.dev](https://chloezhou.dev/mui-v4-v5-style-conflicts-in-single-spa-a-complete-debug-record?utm_source=hashnode&utm_medium=feed)

[Apr 13](https://hashnode.com/posts/mui-v4-v5-style-conflicts-in-single-spa-a-complete-debug-record/69dd774b217f5dfcbd5db8a3)
