5 JavaScript cancellation patterns that look similar:
xhr.abort() vs fetch() + AbortController
setTimeout vs AbortSignal.timeout()
manual signal chaining vs AbortSignal.any()
signal.aborted vs the abort event
one generic catch vs error.name
Follow for more.
xhr.abort() vs fetch() + AbortController
setTimeout vs AbortSignal.timeout()
manual signal chaining vs AbortSignal.any()
signal.aborted vs the abort event
one generic catch vs error.name
Follow for more.
0
0
2
301
Node.js fixed a Brotli bug that can let attackers run code on a server.
Five updates for front end engineers from the last two weeks.
01 Node bundles its own copy of Brotli, so it isn’t in package.json and npm audit can’t see it. Fixed in 22.23.4, 24.22.1 and 26.12.1.
Five updates for front end engineers from the last two weeks.
01 Node bundles its own copy of Brotli, so it isn’t in package.json and npm audit can’t see it. Fixed in 22.23.4, 24.22.1 and 26.12.1.
1
0
0
251
03 Fake take-home assignments ship their own Tailwind plugin to run hidden code on your machine. npm install pulls a private package via the repo’s own .npmrc, and the dev server loads it. --ignore-scripts won’t stop it.
Run take-homes in a container.
Run take-homes in a container.
1
0
0
68
04 Developers are ranking what Interop 2027 should make work everywhere. Josh Comeau’s top three: @function, corner-shape, border-shape.
05 Chrome 156 lets a failed import() be retried. Before 156 it cached the failure and the retry failed instantly.
05 Chrome 156 lets a failed import() be retried. Before 156 it cached the failure and the retry failed instantly.
0
0
0
54
Modal vs popover: the difference is what happens to the rest of the page.
A popover leaves it interactive. dialog.showModal() adds a ::backdrop and makes the rest of the document inert, so nothing outside the dialog can be interacted with.
A popover leaves it interactive. dialog.showModal() adds a ::backdrop and makes the rest of the document inert, so nothing outside the dialog can be interacted with.
1
1
3
261
A popover is always non-modal. popover="auto" closes on outside click or Esc, popover="manual" you toggle yourself.
Both rise into the top layer, so neither needs a z-index. The z-index: 999 you were about to write does nothing for either one.
Both rise into the top layer, so neither needs a z-index. The z-index: 999 you were about to write does nothing for either one.
1
0
0
88
You can open a popover with no JavaScript: a button with popovertarget plus a div with the popover attribute.
Ask one question. Must the user deal with this before anything else? No, popover. Yes, dialog plus showModal().
Ask one question. Must the user deal with this before anything else? No, popover. Yes, dialog plus showModal().
0
0
1
74
5 DOM event pairs that sound similar:
Individual event listeners vs event delegation
Event capturing vs event bubbling
event.target vs event.currentTarget
preventDefault() vs stopPropagation()
removeEventListener() vs AbortController with signal
Follow for more.
Individual event listeners vs event delegation
Event capturing vs event bubbling
event.target vs event.currentTarget
preventDefault() vs stopPropagation()
removeEventListener() vs AbortController with signal
Follow for more.
0
0
2
231
One real resume, about 100 applications, around 8 interviews, 4 offers.
A Computer Science student posted it to r/EngineeringResumes in August 2026, already anonymised. It’s a full stack resume, so this looks at the front end parts.
A Computer Science student posted it to r/EngineeringResumes in August 2026, already anonymised. It’s a full stack resume, so this looks at the front end parts.
1
0
1
257
A personal project can still show a measurable front end result: “Built responsive SPA frontend with React, TypeScript and Tailwind CSS, scoring 100/100 on Lighthouse audits.”
Lighthouse is a lab measurement, so be ready to say whether a number came from lab tools or real users.
Lighthouse is a lab measurement, so be ready to say whether a number came from lab tools or real users.
1
0
1
58
What the resume can’t tell you: they applied to over 100 roles, they already had internship experience, and the post never says which bullets the interviewers cared about.
Copy the habits, not the outcome. One page one column, work with its scale and result, a number can defend.
Copy the habits, not the outcome. One page one column, work with its scale and result, a number can defend.
0
0
0
47
5 dropdown pairs that sound similar, but work differently:
a custom dropdown vs base-select
manual ARIA vs native behaviour
a portal vs anchor positioning
manual value rendering vs selectedcontent
a selected class vs checked and checkmark
Follow for more.
#javascript #css
a custom dropdown vs base-select
manual ARIA vs native behaviour
a portal vs anchor positioning
manual value rendering vs selectedcontent
a selected class vs checked and checkmark
Follow for more.
#javascript #css
0
0
4
366
Yielding makes a page feel faster without doing less work.
Your JavaScript, clicks and screen updates share one main thread, and the browser runs one task at a time on it. While your code runs, a click can’t be handled and the screen can’t update.
Your JavaScript, clicks and screen updates share one main thread, and the browser runs one task at a time on it. While your code runs, a click can’t be handled and the screen can’t update.
1
0
2
343
Why not setTimeout? It sends the rest of your work to the back of the queue, so other waiting tasks run before your work continues.
scheduler.yield() puts your continuation ahead of other tasks of the same priority, so it resumes sooner.
scheduler.yield() puts your continuation ahead of other tasks of the same priority, so it resumes sooner.
1
0
0
46

























