useDeferredValue
March 19, 2025
Laws of UX
December 25, 2024
JavaScript's ??= Operator
December 22, 2024
Self improvement notes
December 2, 2024
Clean up your package.json with `per-NODE_ENV` npm scripts.
November 25, 2024
Accessibility basic checklist
November 3, 2024
Difference Between Clearing, Resetting, and Restoring Mocks
October 26, 2024
Vitest Mocking Cheat Sheet
October 26, 2024
The XY Problem
October 13, 2024
Bulletproof React
September 4, 2024
Why books use serif fonts?
September 2, 2024
Freezing a page in DevTools
August 26, 2024
Types of Browser Storage
July 31, 2024
Refactoring UI keynotes (Part 2)
June 19, 2024
Refactoring UI keynotes (Part 1)
June 17, 2024
Leveraging Keys
June 10, 2024
Monkey patching
April 25, 2024
JSR - New package registry
March 25, 2024
Picking breakpoint values
February 12, 2024
Render different HTML tags based on its semantic meaning
January 30, 2024
SWR - React Hooks for Data Fetching
January 23, 2024
Deep cloning object
January 10, 2024
Non-breaking spaces: ` `
January 4, 2024
Multi-line ellipsis
December 31, 2023
React Wrap Balancer
December 26, 2023
The `useId` hook
December 10, 2023
Readability: The Optimal Line Length
December 9, 2023
CSS media feature: prefers-color-scheme
December 3, 2023
Use form controls in search
November 12, 2023
Caching with closures
November 7, 2023
Inline CSS Variables
November 6, 2023
Simple theming approach with CSS variables
October 23, 2023
JavaScript: the ".call", ".bind", and ".apply" methods
October 16, 2023
JavaScript prototype
October 15, 2023
Detect pointing device with media queries
October 15, 2023
async vs defer attributes
October 13, 2023
[CSS] Create a new stacking context with isolation property
October 5, 2023
[CSS] Use outline for focus style
October 3, 2023
One function for all JavaScript package managers
October 1, 2023
Responsive layout grid
September 19, 2023
Mobile-First Responsive Design
August 30, 2023
Update zsh display git default
May 29, 2023
Custom environment variables in CRA
April 23, 2023
Upgrade a NPM package or multiple packages with a pattern
February 27, 2023
Simple state-management: Zustand
January 2, 2023
[CSS] My Global Styles
December 21, 2022
[CSS] Use unitless number for line-height
December 18, 2022
Don't put "outline: none" unless there's a focus style
November 27, 2022
useSafeDispatch custom hook
November 21, 2022
[Example] useReducer
November 20, 2022
[Example] ErrorBoundary
November 13, 2022
yarn create vite
November 6, 2022
Code review pyramid
October 30, 2022
What error/warning solution to use
October 22, 2022
Show all linked modules in use
October 22, 2022
Avoid boolean trap in React component
October 21, 2022
Quickly build custom UI components with https://styled-system.com/
October 18, 2022
[Git] Check number of changes from current branch
May 1, 2022
[CSS] The :empty CSS pseudo-class
April 30, 2022
Strip HTML tags from markup and memoize it with weakMap()
April 23, 2022
Memoization with React.memo
April 2, 2022
[Jest] Avoid using data-testid in test
March 30, 2022
[Example] Request API hook
March 26, 2022
Avoid unnecessary CSS nesting
March 6, 2022
Random number generator with Web Crypto API
February 19, 2022
[TS] Get return type of any function
February 1, 2022
[CSS] Convert #hex notation to color with opacity (#rgba & #rrggbbaa)
January 30, 2022
Create a focus trap area for Accessibility
October 10, 2021
[Example] React Context
September 10, 2021
How to Modal
July 31, 2021
This is a guide I picked up recently
Nullish coalescing operator (??)
July 18, 2021
A logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand
JavaScript String.prototype.split() with "limit" parameter
July 10, 2021
Specify a limit on the number of substrings
Implement Memoization in JavaScript
June 19, 2021
Programs often waste time calling functions which recalculate the same results over and over again. Memoization helps to resolve this problem.
Implement useIsMounted hook
May 26, 2021
A React hook that tells if a component is mounted
Upgrade dependencies with "yarn upgrade-interactive"
May 12, 2021
An easy way to update outdated packages
RegEx Named Capture Groups
April 26, 2021
A useful RegEx technique the get grouped values
Use Google Sheets as a CMS
April 20, 2021
Today I know an easy way to setup a ggsheet as a CMS
Declarative vs Imperative Programming
April 18, 2021
Differentiate 2 programming concepts in React
Git commands to note
April 15, 2021
Some useful git commands, save for later
A brief introduction of front-end frameworks
April 13, 2021
Introduction of some popular front-end frameworks
Why React Hooks?
April 11, 2021
Learn the reason React made Hooks under the hood
Client-Side Rendering vs Server-Side Rendering vs Static Site Generation
April 5, 2021
Pros and cons of 3 ways a website can be rendered onto the browser
React custom hooks for later use
April 2, 2021
A place to keep all my custom hooks
Implement mediaQuery helper for styled-component
April 1, 2021
Helper tool for responsive design
Push query parameter to the URL with `useLocation`
March 30, 2021
A useful react-router hook
Highlight container when the user focuses on one of its child
March 28, 2021
Using :focus-within CSS pseudo-class
Implement runtime environment variables with Docker and React app
March 25, 2021
There is a way to inject environment variables at runtime for React app
Temporary email generator site
March 24, 2021
https://temp-mail.org
Free cross browser testing site
March 23, 2021
https://app.crossbrowsertesting.com
Testing library for Hooks
March 22, 2021
https://github.com/testing-library/react-hooks-testing-library
Today I learned about Today I Learned
March 22, 2021
Today I learned about Today I Learned