Back to my ritual of writing annual reviews.
January
🙏 Made a web dev wishlist. Only one is checked in the end.
🤖 Made a bot with BotKit.
😩 Ranted about UX.
February
- 🎧 Hoping that AirPods Pro will have self-cleaning feature.
- 🌐 Experimented using Language detection and translator APIs.
March
- 🤔 Wondering about "mockup as a service".
April
May
- 🔋 Battery replacement for my iPhone 13 mini. Free, surprisingly.
- 📔 Built my own version of Storybook.
- 🤖 Having thoughts about AI and browsers.
June
- 🙈 My name got mentioned in a video.
- 🖥️ Ranted about mockups starting with large viewports.
- 👴 Got older. The Big 4-O.
July
- ⌨️ Bought a new portable keyboard (again).
- 🥃 Experimented with a "Liquid Glass"-effect wallpaper.
August
- 🗺️ Getting excited about Apple Maps DCE (Detailed City Experience) in Singapore.
- 🚌 My BusRouter SG web app got featured on CNA Insider's video.
September
- 🎧 Bought AirPods Pro 3.
- 😑 Ranted about cursors and smooth rounded edges of macOS Tahoe.
October
- 🔕 Getting spam GitHub notifications.
- 💈 Made a cool CSS demo with
marquee. - 🏁 Submitted my entry to Bad UX World Cup and didn't win.
- 😭 Ranted about proprietary formats in the design industry.
November
- 🔍 Found a weird server limit on Discord.
- 👀 Saw the Cloudflare internal server error page.
December
Honestly looking at this list, I think some folks might think that this is AI-generated 😅 – I always use emojis for this list in most, if not all, my previous year-in-review posts.
Phanpy
It's been another year of developing Phanpy, my 3rd-party web client for Mastodon, so total up to 3 years now. It's still an enjoyable journey so far, as I continue implementing new ideas while keeping feature parity with official Mastodon.
Few of the interesting implementations:
- Math (LaTeX) rendering – converts LaTeX markup to MathML.
- "X months/years later" indicator – an idea borrowed from Discourse.
- Edit History Snapshots – visualise edit history of a post.
- Reply/Reply All – email-like reply buttons for posts.
- Decal patterns – accessible patterns for charts.
- QR code generator and scanner – for profiles and settings backup.
- Image metadata reader – to be used for alt text.
- Year in Posts – experimental visualisation of posts in a year.
Phanpy also got mentioned so many times that it's getting hard to keep track.
Thus, listing them down here:
Feb 4 — "Potencia tu experiencia en Mastodon con Phanpy #Apps" (podcast) – translated to English as "Boost your Mastodon experience with Phanpy"
Mar 5 — "Leaving the City of Big Social, with Fediverse Enthusiast Chris Trottier" (podcast) – transcribed from Mike McCue:
I mean, I'm incredibly excited to see, you know, there's a fantastic front end called FanP. That's a fantastic user experience.
Apr 8 — "Trunk & Tidbits, March 2025" (article):
There was a big update to Phanpy, a progressive web app client for Mastodon.
Apr 24 — "【(゚∀゚)!!】マストドン界の黒船?!噂のミニマルWebクライアント「ファンピー(Phanpy,social)」を丸裸にしちゃうぞ!☆彡 #四24" (article) – honestly the most hilarious "review" I've ever read 🤣
Jun 26 — "423: Operation Endgame, deepfakes, and dead slugs" (podcast) – recommended as part of "Pick of the week"



I have a screenshot here which is from a very nice one called Phanpy. Phanpy is doing a lot of innovation on the user interface side and actually when we develop new features today, we always look at hmm… how does Phanpy solve it because they have some very cool ideas.
Aug 20 — "Introduction to AT Protocol" (article) – small mention under "Client Apps" section:
All browsing is done through a separate client, and the client always does everything through the public API – kind of like when you run a custom web client for Mastodon like Elk or Phanpy, you connect it to your instance, and you view your timeline on elk.zone.
Sep 26 — "WTN #8: The New Rock Stars of Web Development" (article)
🦣 Meanwhile, Mastodon app developers are coming to grips with the new quote posts. I use Phanpy for my Mastodon browser app (it's awesome)…

Nov 3 — "Time to Migrate" (article)
But iOS people should check out Ivory, Androiders should look at Tusky, and everyone should try Phanpy. I live in Phanpy on both my Mac and my Pixel — it’s a Web thing but installable as a PWA on both Android and iOS.
Nov 8 — "Mastodon 4.5" (article)
The first is support for quote posts. This had already become an unofficial feature in the client apps I was using (phanpy.social on the web and Ivory on iOS) but now it's officially part of Mastodon's core platform.
Nov 13 — "Comfort Zone, Episode 75: Klack to the Extreme" (podcast)
Nov 14 — "Kendzior Case-Study" (article)
I use Phanpy, which has a hilarious little animation with an animated rubber stamp that leaves a red-ink “Spam” or whatever on the post you’re reporting.
Nov 26 — Flock of Cats made a quick video about Phanpy (video).
Dec 10 — "Useful patterns for building HTML tools" (article)
Mastodon has generous CORS policies too, as used by applications like phanpy.social
And that's… pretty much all the coverage, I think.
It's always great to see folks enjoying the app I've built, and somehow my UI experiments kind of worked well for others besides myself.
Side quests
Being unemployed for so long, I do feel like I'm just casually cruising along this uncertain path with everyone else struggling to keep their jobs, trying to pave through high rents and increasing prices. Layoffs were still happening like it's a normal thing now.
Unbounded by dominating working hours, I manage to do quite a number of "side quests", which are pretty much the little things that I enjoy doing.
Like… taking photos of buildings.

The iconic People's Park Complex in Chinatown, before repainted red. Past sunrise. Shadows from tall skyscrapers of the CBD.

A random orange-and-white HDB block numbered 123. Construction noise barriers behind the bus stop at bottom right.

One of the top floors of Sim Lim Square, overlooking the roads through towering glass panels.

Marina Bay Sands and Esplanade Bridge, viewed from the seats of Queen Elizabeth Walk. Almost sunset.

Christmas decorations at Geneo.

Projection light show on UOB Plaza's skyscraper.
I've also visited The Hidden Green, a 6×12m artwork and data storytelling project about Singapore’s urban trees, at the Singapore Art Museum (Tanjong Pagar Distripark). I got to know this project from Kontinentalist folks who worked on them and informed me that they've referenced one of my side projects 😉


At the bottom right edge of the Singapore map, there's a section that says "Map legend".

There's a small print below "Map legend" section. Zoom in…

Here's the small "Data references" section. One of the references is my ExploreTrees.SG side project 🤩.
It's pretty cool to see a physical data visualisation work instead of digital ones, though I always wonder if the work will be preserved digitally when the wall gets repainted for other works, or when Singapore Art Museum moves back to its previous location in Bras Basah.
Anyway, I also got to explore random food places in Singapore, mostly ticking off to-go/to-try places in my list bookmarked on Google Maps. And also, on a quest to try new places before… they potentially close down 🥲
Yes, it's in the news:
- The 2025 F&B roller coaster – so far, so dizzying
- Commentary: As more restaurants shut, is it time to rethink Singapore’s F&B rules?
- Of F&B closures in 2025, 82% of those registered for up to 5 years had never made a profit: MTI
- Majority of F&B outlets here that closed in 2025 did not last over five years: MTI
It's pretty obvious when I check my bookmarks, a few of them unexpectedly show "Permanently closed" after a year or even within less than a year 😥
Despite having a lot of bookmarks, it's technically impossible for any one person to go to all places in Singapore. It's because a few months ago, Singapore citizens received cash vouchers of up to S$800 each to mark the country's 60th birthday. It's called the SG60 Vouchers which works the same way as CDC Vouchers. Only specific places accept these vouchers, so I built a much better alternative UI than the official one. There are over 24,000 places that accept these vouchers, while not all of them are hawker stalls or restaurants, they are still way too many. The list of places is also updated almost daily, so I built a tracker which shows a changelog for places added, removed or edited 🙈.
If let's say there are 20,000 F&B outlets, and a person visits two every day, it would take more than 27 years to visit them all! Take note that SG60 Vouchers will expire on 31 December 2026 🤣.
In conclusion, supporting local businesses ultimately depends on the collective effort of everyone in the country 😇.
All I can do is just best-effort support, despite still unemployed, and trying my best to treat it as a mini-adventure.
In no particular order, and not an exhaustive list…

Smashed burgers, which I randomly ordered as takeaway after I saw the place while walking around Kampong Glam. Not sponsored, by the way.

Chive Pork Dumpling Noodle from A9 Noodle Dumpling at Fortune Center.

Maggi goreng putih. Yes, "Putih" is the keyword.

Shio pan (salt bread) was trending for a while, so I tried a few from Shio and Sato. As expected, the bread was… salty 😆, though it has that extra crispy texture which I find interesting 🤔
Around August, I stumbled upon a site called Acuppa, a directory listing of home-based businesses in Singapore. They were quite trending for some time, deemed viable alternatives to traditional F&Bs, while also having their own fair share of criticism.
Being curious, I tried a few of them.

Straw-Beary Pawcha Latte from KōBear Matcha.

Bandung Matcha from Bendemeer Coffee.

Blushing Matcha Hug from amoRe brew.

Strawberry Bandung Cold Foam Matcha from Waterloo Coffee, originally a home-based business and eventually opened a physical shop.
At this point, it's pretty obvious that matcha is quite trending to a point where many other drink stalls also start to offer matcha. Even 7-eleven stores sell matcha-flavoured oat milk cartons by Oatside 😅.

This trend feels weird because many years ago, I used to be a little obsessed with matcha.
Looking back
This might sound weird, but my first quarter of the year was carried by Solo Leveling Season 2. The intense adrenaline rush with diabolical cliffhangers truly kept me tensed with anticipation every week, to such a high boiling point that everyone starts to hate those feet 🤣
Next few quarters, not much from anime unfortunately, tho' maybe a little from Dr. Stone: Science Future Part 2 and eventual ending of Boku no Hero Academia: Final Season.
Bon Appétit, Your Majesty (k-drama) surprisingly brought a small spark of joy that awakened my appetite 😋
Apart from all of these, things generally stayed the same.
Rather I'm glad that things stayed the same instead of getting worse.
I mean, we still can't ignore all the crazy things that are happening around us, though it's been sort of consistently like that since… the pandemic?
Nevertheless, I'm grateful that some folks have reached out to me. Some have supported my work via thank-you's and donations.
All the little things matter.
