Hi, I'm Link, a software developer who loves helping friends and family!
I like 🚆 Trains, ⚔️ The Legend of Zelda, and 🐉 How to Train Your Dragon!
Why Link? How did I get here? Why Web Development? Why SvelteKit, TailwindCSS, and DaisyUI?

Projects

Openclozes
An app that helped PTNK students memorize answers to open cloze questions!
Ảo z ta
An app that helped PTNK students memorize answers to multiple choice questions!
Werewolf Moderator
An app for Werewolf (the board game) moderators to keep track of players' roles, targets, and actions.
NANG KHIEU Library
App tìm sách và vị trí của sách trong thư viện trường PTNK
Adaptive Music
Play adaptive music, with full support for vertical re-orchestration and horizontal re-sequencing
More projects...

Patch Notes

Introducing Werewolf Moderator 2026 - The Legend of Zelda update!

May 13, 2026

Multiple save slots!

  • Even the original The Legend of Zelda offers 3 save slots, but why stop at 3? Save as many games (and presets) as you want and load them later!
  • Too many saves and presets? Label them for future reference!
  • Old save file will be automatically migrated.

Presets!

  • Have a usual party with more or less of the same people and roles? Create a preset!
  • Already finished a game? Create a preset from the save file!
  • Other moderators want your presets? Share a preset link and they can open it to import the preset!
  • Next time, you can start a new game from a preset (or a save file) and jump right into it!

Quality of Life!

  • Phones zooming in when you tap an input or double tap a button? Both has been fixed!
  • Forgot that a role is not supposed to be able to do something? Werewolf Moderator will show warning messages as well as disable buttons and inputs!
  • Tired of scrolling long players list to find and add a player? Now, you can type and search for their name!
  • Facebook Messenger converting :[ and :{ into emojis? Discord 2000 characters limit? Save file has been optimized AND compressed into a short link!

UI / UX:

  • Deleting a save file now ask for confirmation.
  • You can now toggle ruleset variants.
  • “Autosaved!” toast spam has been replaced with a persistent save icon: Yellow = Saving, Green = Saved.
  • Game Recap now uses pagination.
  • Accordions has been replaced in favor of tabs.
  • Primary (blue) buttons text color is now black so it’s more readable
  • Dead players are now grayed out.
  • <hr> (Horizontal rulers) re-balanced. Sometimes, just spacing alone is enough.
  • <details> (Collapsible sections) re-balanced. For example, 2 advanced settings toggles doesn’t warrant being hidden.

Castlevania - VGU Board Game Club Ma Sói Night 2025 Feature Complete!

  • New role: Imortal Wolf - The role with the most identity crisis: Tử thần, Môn đồ / Báo tử, Sói im lặng, Thần chết, Kẻ thờ thần chết. Maybe I should host a naming contest?
  • Also new roles: Wolf Prince, Acolyte of Death, Hunter, Bodyguard, Witch, Executioner, Inspector, Night Guard, Seer, Mad Bomber, Detective, Police, Journalist, Cult Leader, Voodoo Wolf.

Funny Bug Fixes:

  • Fix killing players not killing dying players. Welcome to “game programming is a vibe” https://x.com/ThePrimeagen/status/1809231827707519327
  • Fix an issue where Mad Bomber (MSN 25) dying while holding the bomb will result in infinite recursion. If I have a nickel for every time infinite recursion happens, I would have 3 nickels, which isn’t a lot, but it’s weird that it happened THREE TMES
  • And many more… (mostly mundane fixes)
More patch notes...