Just about got this done
Give it a try.
Welcome to NW' Blog, the central place where you can read NW's latest shares, project write-ups, and page-revamp ideas.
NW' Blog centers on simplicity and readability, focusing on front-end practice, interaction design, and project experience sharing. And there's also the mysterious MongoDB + Vercel Blob backend.
The blog includes: a personal intro page, content pages, an archive page, and a tools page. You can switch between these pages easily via the top navigation.
Back in the GPT-4 days, my coding skills were still green, and the code I wrote was often laughed at.
So I made a silent vow: someday, I would become a truly genius programmer.
Time went by, and my coding ability improved by leaps and bounds.
Problems that once stumped me for days, I now solve in moments;
projects I never dared to imagine, I now pull off with ease.
Sometimes I do wonder: has my success today leaned on too much outside help?
Then today, looking back down the road I came from—
from GPT-4, to GPT-4o;
from Sonnet, to Opus;
and now on to 5.6 Sol Ultra Fast.
I've swapped one AI for another, yet my coding strength kept climbing steadily.
At that moment, I finally let it go.
The tools kept changing, but the strong one was always me—
turns out I was a genius programmer all along
Vercel Blob comes with immutable cache headers out of the box, so there's no need to wrap another layer of IndexedDB + localStorage on the client.
Compute the content hash with Vite — don't let race conditions sneak in.
Reference images with getHashedImageUrl(): they're hashed automatically at build time, so there's no cache invalidation to worry about.
Security is good enough (though I'm not so sure): pre-shared tokens + bcrypt + JWT HttpOnly Cookie.
Give it a try.
A chat page styled after an anonymous board.
So here are two different cards.
And it can even jump to two different places