RSSAmplifier

Blog

Chen Hui Jing

The chronicles of a self-taught designer and developer who started building on the web when HTML tables were being phased out and floats were the hot new thing.

chenhuijing.comRSS feed ↗190 posts

Latest posts

Building a connect wallet button

Back in October last year, I briefly wrote about my thoughts about standards. Given the almost entirety of my career was around the web, and I cared a lot…

Designing a who-pays-the-fee interface

I still walk around with cash in my wallet. Not a lot of it, but enough to pay for at least a meal plus a drink. Where I live today, most people can get by…

Mathematical precision in Javascript

In a world where most people don't read anymore, and content is written by or at least run through AI for edits, I still find writing out my own thoughts…

Database troubleshooting for Umami

I suck at SQL. There. I said it. I just never really had to interact with a SQL database directly over the years. So yeah, I can query a database, but managing…

How standards enhance the developer experience

My timeline of how the web has evolved is based on CSS layout eras. If you ever came across an earlier post I wrote back in March, you'll know that I started…

Let's talk sample apps

I'm back in the Developer Relations profession. But after going through the migration last weekend, it occurred to me that some part of my current job was…

Migrating from Hugo to Astro

I'm migrating my blog again. This blog has been in existence for more than 11 years. It started as a Jekyll site. Then I moved to Hugo. Now I'm moving it to…

Tag, you're it!

Blogging about blogging seems kinda meta to me. It's definitely fun to see how and why folks started and continue to blog. I got tagged by Hidde, so why not…

Migrating content collections from Astro 4 to 5

In case you missed it, Astro 5 has been out and about since Dec 3, 2024. As of time of writing, we're at 5.5.4 already. What can I say, the team moves fast.…

The case for “old school” CSS

Do people still write CSS in CSS files any more? I honestly don't keep up with the trends as much as I did back when I started by career. Partly because I've…

Implementing pagination on an Astro blog

Even though I built the blog for our tech team to share their insights and knowledge with the rest of the interwebs, I wasn't necessarily the one writing the…

Learning web extensions

I blinked and the first month of 2025 went by. NGL, 2024 was…challenging. So forgive me for choosing to just shut down during the end of last year. But I did…

Chill day just HTML-ing and CSS-ing

I have not had as many chances to build websites lately because for a little over the past 100 days, I've been in a non-developer role at work. It's not really…

How to try experimental CSS features

I love that browsers are now shipping new CSS features that may not necessarily have been fully baked yet behind feature flags. I can't actually pinpoint the…

Generating a weekly calendar from JSON data

The original purpose of this blog was for me to document solutions that I spent hours figuring out at work, which means it's not my code therefore I cannot…

Creating excerpts in Astro

This blog is running on Hugo. It had previously been running on Jekyll. Both these SSGs ship with the ability to create excerpts from your markdown content in…

The value of live web design

Over the years, I've regularly seen blog posts or articles talking about "should designers code?" (less of "should developers learn design?" <span…

Wow, the blog is 10 years old 🥳

Since I conveniently missed my “decade of gainful employment as a web developer” post last year, I'll make it up with a “oh wow, this blog is a decade old”…

My ideal frontend interview

I'll be the first to admit that I think I'm terrible at tech interviews. I never had a proper computer science education, and if I have never encountered a…

Let's inspect a phishing site

First of all, happy new year! It's 11 days into 2024 and I just tested positive for COVID. Unlike many people these days who are not sure where they got it…

Pulling content from external API into Drupal 10

If you had read my previous blog post, you'll have found out that I'm somehow unable to escape Drupal. Not that Drupal is some terrible monster, it's actually…

Customising content markdown via frontmatter in Astro

The use case I had for this was to have customisable bits of a content collection that was rendered from markdown. Basically, a newsletter template where every…

Back from blogging hiatus? Maybe…

What is with a sudden publication of blog posts after a seemingly indefinite hiatus? I have no answer except that I do things when I feel like it. More…

OMG, I'm doing Drupal again

I've not written proper blog posts for a while now but I have come nearly full circle back to the start of my web career (albeit with a decade more experience…

State of CSS survey 2023 is live!

<img srcset="/images/posts/state-of-css/survey-2023-480.png 480w,…

Debugging Firefox on Android

I just figured out how to get my Android phone recognised by Android Debug Bridge (adb) on my MacBook, which finally allowed me to remote debug websites on…

So your designer wants stuff to overlap

I started my first full-time web developer job back in September of 2013 (not counting the period where I built random sites for random people). So it's kind…

Hacking background-clip with gradient colour stops

Before we get into all the hacking and unorthodox ways of doing things, let's talk about background-clip: text properly. If you want an image or a gradient…

The horizontal overflow problem

My good friend, Wei, has a pet peeve: unintended horizontal over-scrolling on mobile. Which is very different from intentional horizontal scrolling on mobile.…

Can we enterprise CSS grid?

Regardless of whether the title of this blog post is grammatically correct or not, this is a question that I've had the opportunity to tackle recently. And…

CSS card shadow effects

Card-style components are pretty much still a thing these days, and there are many ways to make a bunch of identical rectangles look prettier. I'm quite fond…

CSS animation on button hover state

Recently, I came across an animation prototype on a button hover state and wanted to see if I could build it with just CSS. To explain in words, when you…

@font-face fun times

I'm currently a member of the Chinese Text Layout Task Force | 中文排版需求, and we have monthly calls to discuss issues and work related to the Requirements for…

Random update for 2022

I had a conversation with my brother-from-another-mother, Zell, a couple days ago. Half catch-up and half discussion on the project we're working on, which…

The many methods for using SVG icons

Recently at work, I ran into a situation where we had to revisit how SVG icons were being implemented on our pages. And that gave me the opportunity to dig…

Debugging vertical layouts in 2021

This blog has been around for more than 7 years. Where has the time gone? I first started messing around with vertical layouts after discovering the existence…

DevTools for CSS layouts 2021 edition

As someone who loves and works with CSS on an almost daily basis, DevTools are something near and dear to my heart. Recently, I've been seeing updates from…

Understanding browser cookies 🍪

Even though I've been doing web things for a while now, I confess I had never dealt with browser cookies other than clicking those cookie notifications on…

Setting up umami on Heroku

I migrated this website from Jekyll to Hugo about half a year ago and also took the opportunity to move hosting from GitHub Pages to Netlify. What I didn't…

Migrating mLab to MongoDB Atlas

Well, well, well. It's that time again when I revisit some random thing I built years ago and brace myself for the extent of potential code rot. Confession…

What is RedViolaPanda?

This is a question that is impossible to explain with a short answer. But let's give it a try. Red pandas are very cute and very fluffy. Violas are part of the…

Monetizing Your Blog With Coil

I've had quite a bit on my plate lately, a sort of bit-off-more-than-I-could-chew situation, which is not an uncommon occurrence for me. Which is why, amid all…

Let's talk about Web Monetization

Some of you may have been seeing some buzz around the Web Monetization API recently, especially if you hang out on DEV.to quite a bit. Perhaps you've seen…

On fixed elements and backgrounds

I thought this was going to be a short-ish note on fixed positioning and jank, but as with almost everything I write, it grew into a long-ish post about…

Revisiting Drupal 8 After 2 Years

The last time I wrote about Drupal was 2017, when I built the company website for my friend's husband. It was a proper paid project, which really did come at a…

The one in black and orange

It's been a couple months since my last proper "ship-to-production" layout project (the last one being the React Knowledgeable website, subscribe to their…

Migrating from Jekyll to Hugo

After 1992 days on Jekyll hosted on GitHub Pages, all the nonsense I have published on my website is now being built on Hugo hosted on Netlify. I still love…

CSS for internationalisation

I've come across people who do not think that CSS is related to internationalisation at all, but if you think about it, internationalisation is more than…

Flexbox and absolute positioning

Recently, I've been trying to build an open source video conferencing application specifically for online meetups. Just like every other developer on the…

Being a bilingual developer

It's been a while since I wrote a pure opinion post. If this is your first encounter with me, let's just say I am a relatively opinionated person. The…