Johan Westling
banner
johanwestling.bsky.social
Johan Westling
@johanwestling.bsky.social
Digital craftsman of design & code. Based in the Åland Islands 🇦🇽
Reposted by Johan Westling
Can we get an “onafterpagecrash” event so companies can track how many times their apps fall over? Sheesh.
December 20, 2025 at 2:04 AM
Found out a way to create an alias for launching vscode directly in a devcontainer, a bit of initial work but worth it! gist.github.com/johanwestlin...
VSCode - Launch in devcontainer
VSCode - Launch in devcontainer. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
December 5, 2025 at 7:39 AM
Reposted by Johan Westling
Yes, do make sure you at least have your final expenses covered. But also PLEASE name a specific adult beneficiary & remember to update it if things change. It's infinitely easier on your family this way. I pay life claims for a living & I'm speaking from experience.
My mom died with a small whole-life insurance policy in force.

Because of that, I was able to put her in the ground without going hungry or getting evicted.

Do the thing while you’re young. It will cost like $20/mo and change the world for the people who love you.
Buying life insurance is such a weird experience. But please do it if you can afford it and if you have people who would be screwed if you die
October 31, 2025 at 5:15 PM
Reposted by Johan Westling
TIL a GoFundMe widget adds an *entire NextJS app* to the page.

About 5MB of JavaScript—spread across almost 40 files—just to render a few lines of text and a link.

(Yes, the widget has to make an API call to show the campaign's progress. But even given that, it's still absurdly over-engineered.)
August 28, 2025 at 3:28 PM
Reposted by Johan Westling
Is this kubernetes networking?
August 16, 2025 at 12:52 AM
Reposted by Johan Westling
People outside tech starting to realize how quality software and typing/generating code fast are not correlated
June 27, 2025 at 12:55 AM
Reposted by Johan Westling
I was laid-off and am looking for a new role.

Working were design meets code is my jam. I am skilled at building accessible design system components, working with Web Components APIs, and creating scalable CSS architecture.

I work remotely from my home in Manitoba, Canada. 🇨🇦

Shares appreciated!
June 24, 2025 at 4:20 PM
Reposted by Johan Westling
Today we are excited to announce Rolldown-Vite: a technical preview of the version of @vite.dev entirely powered by the Rust stack we built over the past year (Oxc + @rolldown.rs)

voidzero.dev/posts/announ...
Announcing Rolldown-Vite
We are building the next generation of JavaScript tooling
voidzero.dev
May 30, 2025 at 3:33 PM
Reposted by Johan Westling
if i have to hand-hold you through using semantic HTML you are not a Web Developer and certainly not a Full Stack Engineer and your six figures should be revoked.
unfortunately the most critical part of this work is not the part with the "best DX"; it's not what the boys are selling courses for. but that's the work! you're literally *less* of an engineer & craftsman if you don't center these values and their priorities, you're just a hobbyist.
May 5, 2025 at 7:26 PM
Reposted by Johan Westling
Using slots to compose components with web components is more enjoyable than React's children.
April 24, 2025 at 2:45 PM
Reposted by Johan Westling
"commits messages should be meaningful"

me, a professional:
April 23, 2025 at 2:39 PM
Reposted by Johan Westling
"Why is CSS-in-JS terrible for performance?" is a great interview question, actually.
April 22, 2025 at 12:48 AM
Reposted by Johan Westling
Because I keep seeing `position: absolute` + lots of of offset + size + transform + sometimes even margin properties to stack + middle align the stacked items... you can easily do it with 3 #CSS properties!
March 29, 2025 at 11:37 AM
Reposted by Johan Westling
Working on a post to explain the logical shorthand proposals in more detail. Meanwhile, I setup space in my public notebook (where you can follow along), and looked into a question from @johanwestling.bsky.social:

Why `inline-size` but `padding-inline`? #CSS

css.oddbird.net/logical/rese...
Logical shorthand notes & side quests
css.oddbird.net
March 26, 2025 at 8:13 PM
Reposted by Johan Westling
its amazing how chatgpt knows everything about subjects I know nothing about, but is wrong like 40% of the time in things im an expert on. not going to think about this any further
March 8, 2025 at 12:13 AM
Reposted by Johan Westling
You should know that a big part of 18F's work was to make sure multi-million to multi-*hundreds*-of-millions dollar contracts at fed *and* state level didn't go to shitty enterprise IT consultancies that *repeatedly* delivered tech that didn't work, was late, or didn't even do what it needed to
March 2, 2025 at 6:03 PM
Reposted by Johan Westling
It has been nearly 15 years since Siri was introduced and I still never, ever want to talk out loud to my computer. Am I alone in this? Is yapping at your computer a popular interaction mode?
February 12, 2025 at 7:00 PM
Reposted by Johan Westling
Hey #dotnet folks if you’re using a CI/CD double check your resource URLs. A CDN has gone bankrupt and may cease operations in the next month. We are working to make transparent fixes but you can be proactive github.com/dotnet/core/...
Critical: .NET install domains and URLs are changing · Issue #9671 · dotnet/core
Some .NET binaries and installers are hosted on Azure Content Delivery Network (CDN) domains that end in .azureedge.net. These domains are hosted by edg.io, which will soon cease operations due to ...
github.com
December 24, 2024 at 5:16 AM
Reposted by Johan Westling
need product differentiation?

overhire a #CSS front-end team and ask them to:
- polish whatever
- add delight wherever

and watch as your product becomes smooth and buttery while everyone else's gather dust and crust

UI is a huge space offering differentiation via quality
December 28, 2024 at 12:41 AM
Reposted by Johan Westling
why does nobody understand event delegation anymore? this is the most basic web thing and every day I see code going to absurd lengths to bind/unbind event handlers for bubbling events on large sets of DOM elements.

Use a global event handler, they were literally designed for this.
December 18, 2024 at 12:57 AM
Reposted by Johan Westling
I've stayed away from CSS frameworks for my entire career for one reason: the few times I used a framework, I spent more time refactoring the code from the framework than I did writing that code from scratch.

I suspect AI-generated code will be similar, especially for user-centered UI (e.g #a11y).
December 18, 2024 at 6:03 PM
Reposted by Johan Westling
For years, I've been hoping for more of the paged media specs to come to browsers. In the next version of Chrome (131, now in beta) the ability to create your own header and footer content for printed content is here! Find out more in this post.
Add content to the margins of web pages when printed using CSS  |  Blog  |  Chrome for Developers
Create custom headers and footers when printing webpages.
developer.chrome.com
October 31, 2024 at 9:59 AM
This is a very useful feature for testing that require an app for authentication!
December 1, 2024 at 6:32 PM
Reposted by Johan Westling
HAPPY BLUE BEANIE DAY!

The Web Standards movement embodied the idealistic, collaborative, organic, and can-do ethos of the web. That is the spirit I continually strive to embody.

I owe so much to @zeldman.bsky.social, and it's an honor to call him a friend. Thanks, Jeffrey! #BlueBeanieDay
November 30, 2024 at 4:13 PM
Reposted by Johan Westling
Happy #BlueBeanieDay! Because the web is for *everyone*
November 30, 2024 at 9:29 AM