The Magic of Discriminated Union Types in TypeScriptThis is a handy Typescript trick! In simple terms, I like to describe this feature as conditional types. This feature allows you to do things like the below ApiResponse type, let the code talk for himself // You can assert the property will have a sp...Aug 22, 2023 路 5 min readwagnerm.hashnode.dev
Self-Awareness The Typescript for real lifeIntroduction At first glance, the title of this article may seem puzzling, but I assure you, it'll make perfect sense by the end. A recent conversation with a friend about self-control and video games sparked an interesting comparison in my mind. My ...Aug 7, 2023 路 2 min readwagnerm.hashnode.dev
Web GPU: A Low-Level Graphics API for the WebThe web has come a long way since its early days of simple text and static images. Today, web developers can create immersive, interactive experiences that rival native applications, thanks to advancements in web technologies like HTML5, CSS3, and Ja...Apr 11, 2023 路 6 min readwagnerm.hashnode.dev
Tailwind CSSTailwind is pretty great and extremely hyped, but let's face it, it can't do simple things like dynamic classes, and that is one of the biggest downsides of using Tailwind. I mean, come on, you can't do something as simple as this 馃珷 <div className={...Mar 25, 2023 路 3 min readwagnerm.hashnode.dev
Make use of your brain's service workerFirst things first, what is a service worker in JavaScript? A service worker is a type of web worker. It's essentially a JavaScript file that runs separately from the main browser thread, intercepting network requests, caching or retrieving resource...Oct 17, 2021 路 2 min readwagnerm.hashnode.dev