Thomas Broyer's Avatar

Thomas Broyer

@tbroyer.ltgt.net

Web development (frontend, Web APIs), Web app security, build tools, Java, Kotlin, Gradle, etc. Blog: https://blog.ltgt.net Fediverse: https://piaille.fr/@tbroyer GitHub: https://github.com/tbroyer

402
Followers
353
Following
619
Posts
18.08.2023
Joined
Posts Following

Latest posts by Thomas Broyer @tbroyer.ltgt.net

The biggest change in software development is not AI code, but a permission structure for disregarding quality in the pursuit of velocity

10.03.2026 13:40 πŸ‘ 188 πŸ” 53 πŸ’¬ 6 πŸ“Œ 5
What if you suddenly couldn't type anymore?
What if you suddenly couldn't type anymore? YouTube video by Kevin Powell

Videos and podcasts really are not my thing, but I urge everyone in IT (developer or manager) to go watch/listen to this one!

It's a full year old already and I have no idea how I missed it, but yeah, please, go watch it.

youtu.be/QYkjgd6_s4o

#accessibility #CarpalTunnelSyndrome #cts

10.03.2026 17:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Out of context reminder:
The "CORS errors" we get when we develop a page that accesses localhost are what prevents random untrusted webpages from making calls to open HTTP ports on our computer.

10.03.2026 13:33 πŸ‘ 6 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0
Preview
Un-Sass'ing My CSS: Native CSS Nesting Always Twisted Learn how to use native CSS nesting in modern browsers. Understand the & selector, specificity rules, differences from Sass, and when to use nesting with practical examples for components, themes, and...

πŸŽ‰ new blogpost πŸŽ‰

Un-Sass'ing My CSS: Native CSS Nesting

Nesting was a dream feature in Sass and it's recently become 'native' in CSS.

This post covers syntax, specificity, real patterns, and the key differences you need to know.

www.alwaystwisted.com/articles/UnS...

#CSS #Sass #FrontEnd #WebDev

09.03.2026 11:11 πŸ‘ 71 πŸ” 18 πŸ’¬ 3 πŸ“Œ 0
CSS Daily - A Daily CSS Challenge A daily CSS challenge - like Wordle, but for CSS!

Watched March MadCSS and thought "what if we could do this every day?"

So I built it. In a day.

cssdaily.dev β€” a daily CSS challenge. Write CSS to match a target, get pixel-diffed in real-time. New challenge every morning.

Scoring adapted from @wesbos.com and @tolin.ski's open-source SynHax.

07.03.2026 03:05 πŸ‘ 60 πŸ” 10 πŸ’¬ 7 πŸ“Œ 1
A digital CAPTCHA verification window titled "Select all squares with PIPES" against a plain white background. The window contains a 3Γ—3 grid of numbered squares, mixing literal hardware, smoking pipes, and programming syntax.

A digital CAPTCHA verification window titled "Select all squares with PIPES" against a plain white background. The window contains a 3Γ—3 grid of numbered squares, mixing literal hardware, smoking pipes, and programming syntax.

These captchas just keep getting harder #rstats

05.03.2026 15:58 πŸ‘ 619 πŸ” 142 πŸ’¬ 8 πŸ“Œ 2
Preview
Making keyboard navigation effortless Do you use a keyboard to navigate websites? If so, you've probably run into countless accessibility issues where groups of inputs or widgets are not easy, or even possible to get to with just the keyb...

Making keyboard navigation effortless. Introducing focusgroup.

Focusgroup is a new HTML attribute, with early support in Edge, Chrome, and other Chromium-based browsers, that completely handles arrow key navigation within complex widgets. No JS needed!

➑️ blogs.windows.com/msedgedev/20...

05.03.2026 16:48 πŸ‘ 32 πŸ” 12 πŸ’¬ 0 πŸ“Œ 0

Merci pour cette mise au point

05.03.2026 12:08 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

if you see this, do it!

β˜† pronouns: Stop
β˜† height: Giving
β˜† zodiac: Out
β˜† smoke: Personal
β˜† tattoos: Information
β˜† piercings: In
β˜† fav colour: Online
β˜† fav drink: Chains

05.03.2026 02:26 πŸ‘ 14 πŸ” 3 πŸ’¬ 0 πŸ“Œ 1
Preview
an astronaut is looking at the earth with the words " always has been " above him Alt: Le meme "always has been"
05.03.2026 07:43 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How We Do Code Reviews at Cloud Four If your team members dread the notification that they’ve been added as a reviewer on a pull request, I think the following guidelines can help.

New post about how we do code review here at @cloudfour.com! If your team members dread the notification that they’ve been added as a reviewer on a pull request, I think the following guidelines can help. cloudfour.com/thinks/how-w...

04.03.2026 17:56 πŸ‘ 6 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0
Preview
Chip Away Chip, badge, pill, tag, lozenge, how about none?

A really good read about an infamous design pattern and how to be more deliberate in their pattern choices.

https://blog.damato.design/posts/chip-away/

04.03.2026 16:01 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Steam community requesting additional body types for added immersion.

Steam community requesting additional body types for added immersion.

A large block of sentient tofu

A large block of sentient tofu

Steam community: β€œCan we play as a male character?”

Me (indie dev in this economy):
β€œBest I can do is sentient tofu.”

03.03.2026 14:18 πŸ‘ 6635 πŸ” 1885 πŸ’¬ 113 πŸ“Œ 106
Preview
a man wearing sunglasses is giving a speech at the world economic forum annual meeting Alt: Emmanuel Macron au Forum Γ‰conomique Mondial: "For sure!"
04.03.2026 10:08 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

It seems we can now customize the select element, right? right?!

Demo: codepen.io/t_afif/pen/P... via @codepen.io

02.03.2026 13:44 πŸ‘ 374 πŸ” 83 πŸ’¬ 11 πŸ“Œ 13
Preview
npm-install | npm Docs Install a package

Just noticed: NPM added --min-release-age in v11.10 released ~20 days ago, so you no longer need to compute a value for --before *and* you can put it in a .npmrc!

docs.npmjs.com/cli/v11/usin...
docs.npmjs.com/cli/v11/comm...
docs.npmjs.com/cli/v11/comm...

01.03.2026 18:20 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

autofillβ€½ Did you mean autocomplete="email"?

01.03.2026 16:51 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

Another custom select list using using appearance: base-select.

On browsers that don't yet support this, a normal select list will be displayed.

See the full demo on @codepen.io codepen.io/cbolson/pen/...

28.02.2026 11:43 πŸ‘ 40 πŸ” 5 πŸ’¬ 3 πŸ“Œ 1

Vu les posts (rΓ©ponses) du compte, c'est clairement pas eux

01.03.2026 10:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I wanna build a time machine just so I can send this post to me in 2012.

28.02.2026 13:48 πŸ‘ 11 πŸ” 3 πŸ’¬ 1 πŸ“Œ 1
Video thumbnail

ssh is an obscure but widely-deployed command. It stands for Secure Snake Home and was made in the 90s to securely play snake online

I made a massively multiplayer backend for it with support for thousands of concurrent snake players

ssh snakes.run to join!

26.02.2026 16:10 πŸ‘ 542 πŸ” 180 πŸ’¬ 13 πŸ“Œ 13
Preview
New AirSnitch attack breaks Wi-Fi encryption in homes, offices, and enterprises That guest network you set up for your neighbors may not be as secure as you think.

This seems bad for WiFi encryption: arstechnica.com/security/202...

26.02.2026 16:03 πŸ‘ 31 πŸ” 16 πŸ’¬ 7 πŸ“Œ 3

ECMAScript excitement πŸ˜‰

Congrats to @jarredsumner.com on shipping @tc39.es Stage 3 Decorators in Bun v1.3.10 πŸŽ‰

"one of the most requested features since 2023"

It works universally - with `bun run` & `bun build`

⚠️ ES Decorators are different from legacy TS "experimentalDecorators"

26.02.2026 15:25 πŸ‘ 18 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0

TIL about `COPY --parents` in a Dockerfile (since syntax 1.20, Nov. 2025), so you can copy directories, rather than only their content: docs.docker.com/reference/do...

COPY --parents foo bar /baz

is equivalent to the oldish

COPY foo /baz/foo
COPY bar /baz/bar

and will do so in a single layer.

26.02.2026 11:12 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Web platform features explorer - JavaScript modules in service workers

Finally! You can now use JS modules in service workers (i.e. use `import` and `export` to organize your code in modules).

Thank you, Firefox, for adding support and joining other browser engines.

web-platform-dx.github.io/web-features...

24.02.2026 07:48 πŸ‘ 44 πŸ” 10 πŸ’¬ 3 πŸ“Œ 1

Listed for Chromium 146 to be released in a few hours:
chromestatus.com/roadmap

24.02.2026 15:42 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Goodbye innerHTML, Hello setHTML: Stronger XSS Protection in Firefox 148 – Mozilla Hacks - the Web developer blog Cross-site scripting (XSS) remains one of the most prevalent vulnerabilities on the web. The new standardized Sanitizer API provides a straightforward way for web developers to sanitize untrusted…

The Sanitizer API landed in Firefox 148, along with element.setHTML().

This lets you fully configure how HTML strings are cleaned as they're parsed.

hacks.mozilla.org/2026/02/good...

24.02.2026 14:18 πŸ‘ 203 πŸ” 58 πŸ’¬ 1 πŸ“Œ 14

We are so wildly unprepared as a species for computer programs that sound sentient. 😬

23.02.2026 22:58 πŸ‘ 82 πŸ” 5 πŸ’¬ 8 πŸ“Œ 0
Abstract illustration of a masonry layout with arrows between items, showing the flow of items through the layout.

Abstract illustration of a masonry layout with arrows between items, showing the flow of items through the layout.

Embrace the chaos β€” The shape and flow of masonry layouts

In which I ramble about what it means to think about the shape of a layout vs. the flow of items through this layout.

➑️ patrickbrosset.com/articles/202...

23.02.2026 18:02 πŸ‘ 10 πŸ” 6 πŸ’¬ 0 πŸ“Œ 0
Preview
aria-haspopup might not do what you think it does - Manuel Matuzovic I'm a frontend developer in Graz, specialized in HTML, accessibility, and CSS layout and architecture.

To kick off my new article series, #WebAccessibilityFails, I decided to focus on a bad practice I often see in main navigations during accessibility audits.

matuzo.at/blog/2026/ar...

23.02.2026 18:59 πŸ‘ 25 πŸ” 8 πŸ’¬ 0 πŸ“Œ 1