Bao Huynh
bhuynh.dev
Bao Huynh
@bhuynh.dev
Backend Engineer
Web-deving with React, Solid, and a bunch of other stuff
https://bhuynh.dev
Another day another being bitten by <button> elements having type="submit" by default if one forgets to do type="button"
October 3, 2025 at 2:24 PM
Man Svelte {@const} block is such a godsend. Being able to keep variables close to where they're actually needed feels so so elegant and powerful. And these variables are reactive too.
August 23, 2025 at 5:58 AM
Svelte snippet is becoming my new favorite way to organize long component/page.

Snippet can access all of its parent data, making it a lot more convenient than separate components. I can easily split away part of the markup into separate snippets put at the end of the file to improve readability.
August 23, 2025 at 3:22 AM
I love and prefer to use built-in tools, but the `apt` package manager on Ubuntu very often will have outdated package versions.

So I installed `brew` and have been enjoying it so far.
June 14, 2025 at 8:49 PM
Mini Git tip of Saturday:

`git merge-base` finds the common ancestor between 2 branches: `git merge-base main branch-1`

This is especially useful when you want to rebase/filter-branch from the branch's begin - change committer emails, remove files from history, etc.
`git rebase -i <merge_base>`
June 14, 2025 at 7:58 PM
Unironically, I really love Svelte because its font choices are just so elegant. Fit very well with Svelte's motto to "optimizize for vibes"
May 28, 2025 at 1:04 AM
I think I will give up trying to make my dashboard web app mobile-friendly due to long tables. The intended use case is for desktop anyway - it's just for use by me and my small team occasionally and I know we wouldn't using phones.

Trying to fit a table into mobile view looks negative ROI
May 24, 2025 at 3:33 AM
Really enjoying "Wild Courage" by Jenny Wood 📖

A quote I find very profound: "Success mindset precedes success". You need to have a winner mindset before you can succeed

There's no magical turning point where everything will suddenly become perfect. Build success from the way you take action daily
May 22, 2025 at 2:20 AM
Reminding myself today to: Take voluntary struggles (in things I care about) so my mind is ready and prepared for involuntary struggles.
May 13, 2025 at 1:02 AM
Phoenix 1.80-rc now includes DaisyUI by default. Huge win for DaisyUI and I love Daisy!
April 20, 2025 at 7:17 PM
Modular Form and Tanstack Form both look so good I can't choose ahh. Tanstack is obviously powerful, well-designed, w/ a big community and clearer plans for SSR. But something about Modular Form just really hook me - maybe it's the simpler API for smaller use cases, or just the very nice looking doc
March 30, 2025 at 1:46 AM
Wow Phoenix changes so fast almost every tutorial I've seen has now been somewhat outdated.

Good thing the docs are very well-written. Hard thing is knowing which doc to look for and seeing concrete examples.
March 28, 2025 at 4:09 PM
Today I learned: If you are using `createAsync` at the component level, your component should wrap the async access in a <Suspense>, or else SolidStart may cause some weird flash of content issue
March 26, 2025 at 3:00 AM
Elixir Phoenix Plus is the coolest thing I have ever seen. Such flexible, extensible, and powerful way to do middleware.
March 24, 2025 at 7:08 PM
LLM is an incredible piece of technology, and good prompting seems to affect results a lot, but I'm often not patient enough to write a good long prompt myself with all needed context. I often rather code it myself, completed with small snippets from chatGPT instead of whole project generation.
March 24, 2025 at 2:48 PM
Playing with fire today and accidentally force push Git history and now all my 46 commits "happened" at the same time
March 17, 2025 at 2:29 AM
Recently I have seen my Git folder getting corrupted quite often in WSL2. Not sure why. Push your commits often everyone, even WIP commits (you can always rebase later)
March 15, 2025 at 12:03 AM
Man I love tailwind's Amber color. 300 and you got a pleasant yellow, and 500 you got a nice-looking orange. Not too overtly yellow nor orange - very easy on the eyes
March 8, 2025 at 4:26 AM
Honestly, not always.
Reading a good doc feels amazing. When every problem you thought of they immediately solved it in the next sections, and you keep having moments of enlightenment "wow that's so cool". You glide on the sea of knowledge taking it all in.

Writing the docs though...
March 6, 2025 at 12:25 AM
Today I finally reached the point where I typed ":w" in an Excel file
February 21, 2025 at 7:33 PM
TIL: `onpointerup` to make mobile-only click event.

On mobile w/ limited horizontal space, I want to implement tapping on the row to show extra info. But on desktop with lots of whitespace, I prefer dedicated buttons.

→ Solution: Mobile-only clicking with `onpointerup` and `event.pointerType`
February 21, 2025 at 3:26 PM
This so much tbh.
Esp when major versions can help with marketing too
Just use the pride ver
February 18, 2025 at 7:12 AM
Man this was such an awesome read: The history of modern JavaScript tooling → How we went from
TIL: ESM Dynamic import has a cache!

So if you're developing a module to be dynamically imported, and seeing that it keeps importing the old version, you can bust the cache by just adding a query string with `Date.now()`
February 13, 2025 at 8:37 PM
A lot of website accessibility can be achieved by just:
- Using semantic HTML elements: nav, fieldset, dialog, label, etc.
- And use ARIA attributes occasionally. Mostly aria-label, aria-labelledby, and role to give more context to things that screen readers may not understand: emojis, buttons, etc.
February 7, 2025 at 3:20 AM