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

Obsidian x Feiniu NAS: Building a Free Cross-Platform Note Sync & Backup Solution

Obsidian x Feiniu NAS: Building a Free Cross-Platform Note Sync & Backup Solution

I restarted journaling on August 1st, 2019, and have now kept it up for 6 years! Initially, I used a cloud note app, but four months ago I gradually migrated all the data to my home NAS. When I scraped the data back, I was surprised to find it was nearly 8 GB... I always thought it was mostly text, but turns out I included quite a few images. Looking back through it all, my life has been pretty colorful, haha!

2025/10/8 23:42:03

Open Source Projects

Projects that I created or maintaining

blackwork

1
8.17k

Blackwork Tattoo style React UI layout (provides a unified interface for websites like my blog).

UI

@re-dev/react-truncate

53
8
3.34M

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

UI

create-preset

47
3
130.57k

Provides the ability to quickly create preset projects.

Scaffold

@bassist/build-config

11
3
492

Opinionated collection of common build tool configurations.

Configuration

learning-vue3

1.47k
175

Which has been read by more than 2.3 million people, provides basic knowledge points about front-end engineering development, as well as an introductory learning guide for TypeScript, Vue 3, and Pinia.

Tutorial

@bassist/eslint-config

11
3
1.83k

A modern flat ESLint configuration for ESLint.

Configuration

chengpeiquan.com

60
9

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

Template

@web-analytics/vue

9
1
354.78k

Website pageview analytics tool for Vue.js (Including VuePress , VitePress etc.) and multi-analytics-platform support.

Toolkit

group-buy-calculator

5

A takeaway billing calculator, no need to worry about red envelopes, redemption coupons and other messy reductions, it will automatically calculate the discount ratio to get the final bill.

Online Tool

vue3-ts-vite-starter

15
2

A template for Vue with TypeScript, base on Vite.

Template

vite-plugin-banner

112
6
11.25M

A Vite plugin that adds a banner comment to the header of each chunk file.

Bundling