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

An Oxc-first workflow package for Oxlint and Oxfmt

An Oxc-first workflow package for Oxlint and Oxfmt

I have been following the Oxc project for quite a while. After seeing it enter the 1.x line some time ago, I had wanted to put together a configuration for it, and over the past few days I finally found time to work on it. At the current stage, however, Oxlint still cannot fully replace ESLint, so for now I simply call this package Integration rather than oxc-config.

2026/4/14 01:30:00

Open Source Projects

Projects that I created or maintaining

cert-patroller

3
2

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

Server

blackwork

1
8.64k

Blackwork Tattoo style React UI layout for blogs, documentation sites, and other content-driven websites.

UI

git-commit-analytics

31
2

A tool to analyze your git repository's commit log. I can help you generate daily/weekly or longer work reports.

Program

@bassist/oxc-integration

11
3

An Oxc-first workflow package for projects, while still keeping an ESLint fallback available where framework coverage is not yet enough.

Configuration

@bassist/build-config

11
3
2.32k

Opinionated collection of common build tool configurations.

Configuration

vue3-ts-vite-starter

15
2

A template for Vue with TypeScript, base on Vite.

Template

@bassist/utils

11
3
3.84M

Opinionated collection of common JavaScript / TypeScript utils, fully tree shakeable, no bundler required, type strong, SSR friendly.

Toolkit

chengpeiquan.com

60
9

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

Template

@blackwork/docs

1

Next.js-first documentation framework for Blackwork projects, with content discovery, locale-aware routing, metadata, navigation, and theme shells.

UI

@blackwork/search

1

Pagefind integration for Blackwork projects, with server-side indexing utilities and browser-side search clients.

Toolkit

@re-dev/react-truncate

60
8
4.21M

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

UI