Blog

Subscribe to stay up to date.

2025

Video games roundup (2024)

My thoughts about the games I played in 2024. Contains thoughts about 28 games, over 2 per month. Yeah, I'm a gamer.

Editorial style & shrines progress

A new design era: Editorial style. Two color design returns, but I'm aiming for something more elegant than retro. I've also started working on my long awaited shrines! Contains 17 screenshots.

2024

Curry

A memorial post about Curry, our beloved cat of the last 12 years.

Tidying up the website again

I took some free time to improve the desktop navigation on my website, and better organize information and links. Enjoy the screenshots.

Very verdant: Even more green

After starting Firefox and VS Code themes, I realized my website didn't have enough green. I massively improved dark mode, and added more green everywhere. Enjoy the screenshots.

Fresh new green

Exploring the process behind my fresh new green, including a design I discarded and the inspiration for my new style.

Cory

A memorial post about Cory, one of my closest friends.

Health is temporary

After a year of chronic pain, I wish I had more relief. But I am making progress. I also discovered I don't even use my teeth and tongue correctly, lol.

Home page update

I updated my home page and added more decoration to the site. I want it to be easier to browse and more fun looking.

Becoming an Astro-not

I spent an entire weekend migrating my Eleventy site to Astro—and then back to Eleventy! A reflection on using the right tool for the job, when many options are viable.

Experiment: Puffy 3D mode

Taking inspiration from Claymorphism, I made an experimental version of my site with a puffy 3D look.

wavebeem 2.0: Slime Mode

With cohost.org going away, I decide to lean even harder towards working on my personal website. I've created a new theme, with a softer, more playful aesthetic than ever before. I've also created many new sections on my website.

Open world fatigue

A brief reflection on the Legend of Zelda and the popularity of open world video games.

JS context managers

See how to adapt Python's context managers for use in JavaScript. Break free from clunky try...finally blocks with this one weird trick.

Cool 3D buttons

A nice collection of buttons you'll want to push over and over again. These 3D buttons call back to a time of shiny silver plastic and tactile experiences.

Making a theme selector

How to make a theme selector for your website, and why you might want to have more than one theme.

10 years of themes

An image gallery and reflection of 10 years of themes I've made for wavebeem.com

JS compare function

Exploring a small but mighty function that supercharges the JS Array sort method to rival Lodash's orderBy

Querying shadow DOM

Examples of how to query shadow DOM, and when you actually don't want to.

Flashlight

Turns the lights off and navigate the page using a flashlight.

Flashlight: Making toys for the web

I made a toy flashlight for the web. It simulates darkening the web page and following the cursor. It looks somewhat convincingly like a flashlight. Enjoy!

JS Proxy and private properties

The default Proxy implementation doesn't work well with private properties, but we can fix this! I also explore other approaches to private data in JS.

2023

Developing with web components

Thoughts on developing with web components from scratch; no UI libraries. This covers custom elements and very basic use of the <template> element. Shadow DOM is mentioned but not used.

The web is an app platform

The web has been an app platform for most of its life. I discuss the history of the web and my definition of "app".

2022

2021

2020

Tagged unions in JavaScript

A disciplined approach to state management and domain modeling for JavaScript and TypeScript. Also known as algebraic data types / discriminated unions.

2019

SeaGL 2019

Building Your own keyboard with free software.

Mechanical keyboards 201

Thinking beyond pre-built gear, this guide will help prepare you to build your own keyboard.

2018

2017

React without JSX

A quick overview on using React without JSX or any build tools.

2016

Broken promises

How to use promises effectively (written before async/await existed)

2015