P

Paul Ching

Tattoo

Cats

Bass

Cooking

True Colors: A Decade

About Me

An engineer who doesn’t look like one

Photos of me with long hair

I’m a front-end developer, sometimes dabbling in product design and a bit of not-so-serious full-stack work.

I grew up in Chaozhou’s ancient town and now live in Guangzhou. I’ve always been surrounded by Lingnan and Hong Kong culture, and I mostly speak Cantonese and Teochew in daily life.

I’m into being on my own, raising cats, long hair, tattoos, rock & metal, and cooking — all the good stuff.

Learn more >

Recent Blog

Tech Insights, Product Design & Life Musings

A modern flat ESLint configuration for ESLint V9

A modern flat ESLint configuration for ESLint V9

ESLint v9.0.0 is a major release of ESLint, it has several breaking changes, the biggest of which is the use of its configuration files and plugin ecosystem. For new projects, I provide an ESLint Config package with some of my personal commonly used ESLint configurations built in.

2025/3/14 00:35:02

Open Source Projects

Projects that I created or maintaining

vue3-ts-vite-starter

14
2

A template for Vue with TypeScript, base on Vite.

Template

create-preset

45
3
63.25k

Provides the ability to quickly create preset projects.

Scaffold

react-forage

2
2.04k

LocalForage Hooks and Providers for React.

Toolkit

@bassist/tsconfig

11
3
7.98k

Some TSConfig files for working with TypeScript projects.

Configuration

zhihu-collection-helper

3

Zhihu Favorites Assistant can add articles from a column to favorites. It is suitable for situations where a large amount of content needs to be filled in the favorites at the initial stage of creation.

Program

cert-patroller

3
2

A patroller that regularly checks for expiring SSL certificates, based on Node.js and Porkbun APIs.

Server

@iso-639/data

2
2.00k

Contains code lists for ISO 639-1 and ISO 639-2 as well as multi-language support.

Toolkit

@bassist/build-config

11
3
146

Opinionated collection of common build tool configurations.

Configuration

@bassist/eslint-config

11
3
1.30k

A modern flat ESLint configuration for ESLint.

Configuration

chengpeiquan.com

59
9

My personal website, base on React 19 and Next.js 15.

Template

@re-dev/react-truncate

49
8
771.38k

Provides `Truncate`, `MiddleTruncate` and `ShowMore` React components for truncating multi-line spans and adding an ellipsis.

UI