Johan Westling's Avatar

Johan Westling

@johanwestling

Digital craftsman of design & code. Based in the Γ…land Islands πŸ‡¦πŸ‡½

38
Followers
177
Following
8
Posts
12.09.2023
Joined
Posts Following

Latest posts by Johan Westling @johanwestling

This is a good principle for design in general:

When users tell you there's a problem, they are usually right.

When users tell you how to fix it, they are usually wrong.

(bonus: if you replace "user" with "stakeholder" this still applies)

05.03.2026 17:31 πŸ‘ 186 πŸ” 30 πŸ’¬ 6 πŸ“Œ 6

It's a thing already in the Γ…land Islands. Local media publish what is called "skattetoppen" annually. It includes person's name, total income and total taxes. But I think one could get similar data for the whole of Finland as well.

05.03.2026 03:49 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So is programming. Which is why "vibe coding" is bunk. You have to think through exactly what you want the program to do, and only writing the code will force you to actually think it through properly.

17.02.2026 12:37 πŸ‘ 125 πŸ” 31 πŸ’¬ 5 πŸ“Œ 1
Video thumbnail

shell autocompletions for your javascript cli tool.

introducing tab:

27.12.2025 19:18 πŸ‘ 80 πŸ” 12 πŸ’¬ 3 πŸ“Œ 3

Can we get an β€œonafterpagecrash” event so companies can track how many times their apps fall over? Sheesh.

20.12.2025 02:04 πŸ‘ 17 πŸ” 1 πŸ’¬ 2 πŸ“Œ 0
Preview
VSCode - Launch in devcontainer VSCode - Launch in devcontainer. GitHub Gist: instantly share code, notes, and snippets.

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...

05.12.2025 07:39 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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.

31.10.2025 17:15 πŸ‘ 8 πŸ” 5 πŸ’¬ 2 πŸ“Œ 0

Yeah mine is 3+ years now as well, but I'll probably stick with it now when I've found the right combo of cables/dongles to make it useable πŸ˜„

03.09.2025 05:47 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

But sure sucks that you have to circumvent the intended features just to get a device usable whatsoever πŸ€¦β€β™‚οΈ

02.09.2025 17:51 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Sounds a bit like my issues with LG 5k that flicked on/off as the monitor wanted to be the PD device over the laptop original charger... Ended up with a bidirectional USB-C to DisplayPort cable combined with a USB-C dongle with DisplayPort & hub to only get the video transmission to the screen πŸ˜…

02.09.2025 17:50 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Comparison of a page loading before and after adding one GoFundMe widget to the page. The number of requests goes from 12 to 64; transferred data goes from around 0.5 MB to 2.1MB; resources goes from 642kb to 5.8MB; and the finish time goes from 0.18 seconds to 1.14 seconds.

Comparison of a page loading before and after adding one GoFundMe widget to the page. The number of requests goes from 12 to 64; transferred data goes from around 0.5 MB to 2.1MB; resources goes from 642kb to 5.8MB; and the finish time goes from 0.18 seconds to 1.14 seconds.

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.)

28.08.2025 15:28 πŸ‘ 107 πŸ” 17 πŸ’¬ 9 πŸ“Œ 7

Is this kubernetes networking?

16.08.2025 00:52 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Post image

People outside tech starting to realize how quality software and typing/generating code fast are not correlated

27.06.2025 00:55 πŸ‘ 975 πŸ” 207 πŸ’¬ 14 πŸ“Œ 27

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!

24.06.2025 16:20 πŸ‘ 124 πŸ” 84 πŸ’¬ 5 πŸ“Œ 6
Preview
Announcing Rolldown-Vite We are building the next generation of JavaScript tooling

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...

30.05.2025 15:32 πŸ‘ 321 πŸ” 73 πŸ’¬ 3 πŸ“Œ 10

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.

05.05.2025 19:26 πŸ‘ 51 πŸ” 9 πŸ’¬ 2 πŸ“Œ 1

Using slots to compose components with web components is more enjoyable than React's children.

24.04.2025 14:45 πŸ‘ 31 πŸ” 3 πŸ’¬ 1 πŸ“Œ 1
screenshot of github with 18 consecutive "wip" commits

screenshot of github with 18 consecutive "wip" commits

"commits messages should be meaningful"

me, a professional:

23.04.2025 14:39 πŸ‘ 94 πŸ” 9 πŸ’¬ 18 πŸ“Œ 1

"Why is CSS-in-JS terrible for performance?" is a great interview question, actually.

22.04.2025 00:48 πŸ‘ 31 πŸ” 2 πŸ’¬ 10 πŸ“Œ 0

Sounds great!

12.04.2025 18:41 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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!

29.03.2025 11:37 πŸ‘ 137 πŸ” 13 πŸ’¬ 1 πŸ“Œ 0
Logical shorthand notes & side quests

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...

26.03.2025 20:13 πŸ‘ 10 πŸ” 5 πŸ’¬ 1 πŸ“Œ 0

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

08.03.2025 00:13 πŸ‘ 18869 πŸ” 4611 πŸ’¬ 127 πŸ“Œ 153

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

02.03.2025 18:03 πŸ‘ 4661 πŸ” 1206 πŸ’¬ 58 πŸ“Œ 81

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?

12.02.2025 19:00 πŸ‘ 194 πŸ” 10 πŸ’¬ 59 πŸ“Œ 6
Preview
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 ...

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/...

24.12.2024 05:16 πŸ‘ 311 πŸ” 165 πŸ’¬ 12 πŸ“Œ 7

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

28.12.2024 00:41 πŸ‘ 659 πŸ” 92 πŸ’¬ 35 πŸ“Œ 21

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.

18.12.2024 00:57 πŸ‘ 67 πŸ” 5 πŸ’¬ 8 πŸ“Œ 0

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).

18.12.2024 18:03 πŸ‘ 19 πŸ” 2 πŸ’¬ 5 πŸ“Œ 0
Preview
Add content to the margins of web pages when printed using CSS Β |Β  Blog Β |Β  Chrome for Developers Create custom headers and footers when printing webpages.

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.

31.10.2024 09:59 πŸ‘ 52 πŸ” 15 πŸ’¬ 4 πŸ“Œ 2