Blog Programming guides, project updates, video game reviews, life events, and more. Subscribe to stay up to date. 2025 Theme: Jade & Lime A Balatro-style Holographic Card Hover Effect Min-Maxing Dinner Review: Pokémon Crystal In Defense of the “for...of” Loop Enhancing the Pokédex: Input Lag, React, and Monitor Refresh Rates Creating a Colorized Disjoint Union of Graphs I Actually Had to Use Algebra at Work One Time Simulating JS await with Generator Functions Pokémon Type Calculator Updates Review: Ittle Dew 2 Image Manipulation with ImageMagick Blog Questions Challenge Review: Cobalt Core Review: Goodboy Galaxy Video Games Roundup (2024) Editorial Style & Shrines Progress 2024 Curry Tidying Up the Website Again Very Verdant: Even More Green Fresh New Green Cory Health is Temporary Home Page Update Creating an HTML “Spoilers” Element with No JS Diagnosing a Common Source of Race Conditions in JS Getting Weirder with Fonts, and: Too Much of a Good Thing Becoming an Astro-not Experiment: Puffy 3D Mode wavebeem 2.0: Slime Mode Open World Fatigue JS Context Managers Cool 3D buttons Introducing: The Toybox Making a Theme Selector I Made a New 88×31 Site Button 10 Years of Themes JS Compare Function Querying Shadow DOM Flashlight Flashlight: Making Toys for the Web JS Proxy and Private Properties 2023 Developing With Web Components Windows Vista in CSS What Pronouns Does a Jester Use? You Deserve to be Happy, or: the Web Wasn't a Mistake The Web is an App Platform 2022 ザ・ワールド (The World) I Made a Geocities Site Button Recipe: Best Dip Ever Why I Don't Like useState 2021 Recipe: Buttermilk Biscuits 2020 Adventures in de-Googling Recipe: Crispy Tofu Tagged Unions in JavaScript 2019 SeaGL 2019 Mechanical Keyboards 201 2018 Mechanical Keyboards 101 7 Tips for Better Bash 2017 JavaScript Iterators and More React Without JSX 2016 Broken Promises Compiler Code Generation Making a Language The Leaning Tower of Babel 2015 JS Gotchas With this and new Squiggle: a JS Language