Skip to content
曾亮懿 ZengLiangYi Blog
Think Different.

Zeng Liangyi
AI Native
Developer

Make something wonderful, and put it out there.

How I work

How I work with AI

Make the goal and project conventions clear, then change things in small steps, read the diff and check the result.

Prepare the context

Hand the AI the goal, the relevant code and the project's conventions, so it changes what exists instead of starting from scratch.

Implement and review in steps

Split the task into changes small enough to review on their own, and read each diff before moving on.

Verify generated code

Run type checks, tests and the build, then click through the page myself, paying attention to failures and edge cases.

Keep decision records

Write down why something was done and how it was verified, in commit messages or notes, so there is something to go back to.

About me

Learn whatever
it takes to ship.

I'm based in 深圳, 广东, 中国. If a project needs it or something sparks my curiosity, I'll pick up whatever part of the stack it takes—and spend the time to understand how it actually works under the hood.

My open-source projects and TIL notes live on GitHub. Problems I've hit and things I've figured out become articles here, and on Juejin and CSDN.

More about me

A few things about me

Frontend · Backend · Ops

Built with Astro

5 Production Sites Shipped

Based in
深圳, 广东, 中国

From the blog

Featured

Fixing 1px Carousel Seams: Subpixel Layout and Scale Fixes

Debug 1px mobile carousel seams caused by subpixel rounding. Compare negative margins, CSS translation, and scale transforms to eliminate rendering gaps.

曾亮懿 曾亮懿
5 min read
#CSS #Web Development #Swiper #Performance

Google Indexing in Astro: Incremental Cache-Driven Submissions

How to fix Google indexing deadlocks in static Astro sites using incremental cache-driven API submissions, Git SHA hashing, and sitemap lastmod timestamps.

曾亮懿 曾亮懿
4 min read
#Astro #SEO #Google #Automation

AI Conversation Formats: JSONL Events vs SQLite Snapshots

Compare 5 AI adapter formats: separate JSONL events from SQLite keys, and inspect indexed, orphan, and unknown-version chat transcripts in memory stores.

曾亮懿 曾亮懿
4 min read
#ChatCrystal #Node.js #SQLite

Let's exchange ideas

If you're into frontend, AI coding or developer tools, I'd be happy to chat.