Editor's Pick
Tabageos: Tads Basic Game Objects
JavaScript library and tools for making 2D and isometric games and applications.
You can see various examples from each Class, mini games and complete games here.
CSS
The Future of CSS: Construct <custom-ident> and <dashed-ident> values with ident()
This post is about a future CSS feature. You can’t use it … yet.
This feature only has a resolution saying that it should be part of the css-values-5 specification. It still needs to be formally specified and does not exist in any browser yet (this can take a long time). This post is more of an explainer, outlining the problem space + solution, to show you what you will (~ should) be able to do with in the future.
5 CSS snippets every front-end developer should know in 2024
I believe every front-end developer should know :has() is more than a "parent selector", the how and why of a subgrid, how to nest with built-in CSS syntax, how to let the browser balance headline text wrapping, and how use container query units.
This post is a continuation of last year's 6 CSS snippets every front-end developer should know in 2023.
The Little Triangle In The Tooltip
Today, I want to focus on what I'll call the little triangle in the tooltip. It receives minimal attention but it amazes you by how many ways there are to make them. Let's start with the simplest and make our way up to the not-so-simple.
Animating Entry Effects
With CSS, there are two primary properties used for animation: transition and animation. Both properties allow customization based on how long the animation should last (duration), when it should start (delay), and how the in-between frames should be "tweened" (easing).
Today, we will focus on a couple of aspects that can be utilized with the transition property in CSS: allow-discrete and @starting-style.
How to Create a Zig-Zag Box Using CSS
Use modern CSS to create fancy Zig-Zag boxes (or spiky borders if you want a different name).
JavaScript
Beanheads Vue: Create billions of unique characters by mixing and matching colors, hairstyles, and clothing
Easily generate avatars for your Vue and Nuxt projects with Beanheads Vue.
See it in action at our Beanheads Vue Generator.
This project is a Vue version inspired by RobertBroersma's React project, Beanheads. We deeply respect and appreciate the original work.
How to validate your React i18next application
How to ensure your React i18next application is valid and up to date by using i18n-check.
boardgame.io: State Management and Multiplayer Networking for Turn-Based Games
boardgame.io is an engine for creating turn-based games using JavaScript.
Write simple functions that describe how the game state changes when a particular move is made. This is automatically converted into a playable game complete with online multiplayer features, all without requiring you to write a single line of networking or storage code.
Tabageos: Tads Basic Game Objects
JavaScript library and tools for making 2D and isometric games and applications.
You can see various examples from each Class, mini games and complete games here.
5 Bad Ideas in TypeScript
Even though TypeScript is great, there are still ways to shoot yourself in the foot. In this post, I'll share 5 bad practices in TypeScript and how to avoid them.
Miscellaneous
The security risks of front-end dependencies
Front-end apps are built with hundreds of dependencies, each one a potential risk. This year alone, thousands of JavaScript vulnerabilities were reported, yet many developers still underestimate the security risks of dependencies in front-end apps. These dependencies introduce unique risks distinct from those faced in server-side applications. It's crucial for professional developers to understand and address their potential impact.
Career Advice for New Tech Workers in 2025
I’ve been fortunate enough to work at both Fortune 500 companies and scrappy startups with 50 people, across the US and Europe. I’m not claiming to know everything (far from it).
That said, I think I’ve been around long enough to offer a perspective worth sharing.