javascript

Tag: javascript

47 posts
Asynchronous JavaScript for the Browser — Complete PictureAsynchronous JavaScript for the Browser — Complete Picture
Vishuddha icon
Vishuddha

Asynchronous JavaScript for the Browser — Complete Picture

How the browser event loop actually works — tasks, microtasks, Web APIs — and what async/await is really doing underneath the syntax sugar. Includes the edge cases that actually break in production.

·
Aug 25
·
Bluesky* Bookmarklets for bulk Labeler Toggling
HILARY BAUMANN icon
HILARY BAUMANN
hilarybaumann.com

Bluesky* Bookmarklets for bulk Labeler Toggling

* AND Blacksky AND Eurosky (mu.social) AND Northsky and probably all the Skies. These bookmarklets are not site specific so you can run them while on any browser based client to be honest. (and yes, at the time that I'm posting this, for some reason the code blocks look best in dark mode ... I...

·
Aug 20
·
Hypothesis testing, EWMA, and portable histograms in Node.js
jasnell.me icon
jasnell.me
jasnell.me

Hypothesis testing, EWMA, and portable histograms in Node.js

The Node.js histogram API gets Welch's t-test, Mann-Whitney U, EWMA for streaming stats, SLO burn rate tracking, and a CBOR-based export/import format.

·
Aug 19
·
Making Node.js histograms more useful
jasnell.me icon
jasnell.me
jasnell.me

Making Node.js histograms more useful

The Node.js histogram API now has real statistical analysis. CDF, skewness, kurtosis, KS tests, coordinated omission correction, and snapshot diffing.

·
Aug 18
·
The Rippled Vortex Ring: Generative Art, and the Infinite Loop That Wasn’tThe Rippled Vortex Ring: Generative Art, and the Infinite Loop That Wasn’t
K
Kemal's
kemal.yaylali.uk

The Rippled Vortex Ring: Generative Art, and the Infinite Loop That Wasn’t

Screenshot I spend most of my working life thinking about what happens inside a stirred tank. Impeller tip speed, shear on the cells, the shape of the vortex that forms when you get the baffling wrong. So when I fell down the rabbit hole of p5.js code golf last week, it was probably inevitable that...

·
Jul 31
·
Making my blog feel like other people are here
K
keith.is
keith.is

Making my blog feel like other people are here

I wired my homepage up with playhtml so dragging a sticker, waving the hand, or starting a song all happen for everyone who's on the page at the same time. Notes on what I built and why I keep chasing this "we're all here together" feeling.

·
Jul 19
·
Social comments on my blogSocial comments on my blog
M
MacKuba blog
mackuba.eu

Social comments on my blog

I had a comments section on this blog since the beginning. I always felt like a comments section was kind of a requirement for a blog: it’s not just a website where you publish posts, it’s a website where you publish posts and other people can comment on them. I strongly disagreed with bloggers who openly declared that they’re removing comments from their blog because their blog is not a place for others to add their remarks, and that they can always write to the author on Twitter if they want to contact them. But one obvious problem with comments on a blog, which got worse and worse over time, was spam. People tried to solve it e.g. with captchas, though as the bots got smarter, captchas had to get more complicated and annoying. For a very long time, I had a super simple captcha in the comment form that just asked: “Are you a human? (yes/no)”. You just had to write “yes” in the text field. And for a very long time it was enough – obviously it’s trivial to make a bot add an additional query parameter, the point was that nobody would think about it when writing generic spambots, and my blog isn’t famous so the bot authors wouldn’t have come across it. Things got worse around 2018-19. I started getting comments (I had email notifications for them) that were spam that obviously got around the captcha. So I started tweaking the captcha, adding multiple slightly more complex questions, but still such that you could answer them if you’re a developer or an Apple user – “What’s the name of the Mac operating system”, “Who is currently the CEO of Apple”, and so on. But it only worked for some time, and then I started getting spam again, while making the questions progressively harder over time: At some point I figured that this had to be actual people, rather than bots, adding the comments (talking in general, not about Jerry here above), people sitting at a computer, browsing websites and filling the forms by hand, because there was no way a bot would figure out that the question was a captcha and that it had to google for a name of a function (note, this was in pre-AI times). The comments were usually either in Russian or Ukrainian, or linking to some local service companies in some random small town in the US. There was no way I could out-captcha an actual human that can google for an answer. But it wasn’t a huge problem, I didn’t get many of those comments, and it was fairly easy to filter them out still by content, so I didn’t bother changing the system further. But here’s the thing: it’s not 2010 or 2018 anymore, and some other things have changed in the meantime too. I think it’s a bit of a truism that blogs and “blogosphere” aren’t what they used to be 15+ years ago. People post their thoughts on social media, Instagrams, Facebooks, LinkedIns, Substacks, record Tiktoks, YouTube videos or podcasts. Reading and writing blogs and commenting on them is a very niche hobby, let’s face it. After 2020-21, when for a while I was getting a ton of comme…

·
Jul 13
·
Fetch Is Not Enough
jasnell.me icon
jasnell.me
jasnell.me

Fetch Is Not Enough

The Fetch API gave JavaScript runtimes a shared vocabulary for HTTP. But HTTP has capabilities that Fetch can't express, and every runtime has diverged trying to work around the gaps.

·
Jul 9
·
Alli AI Launches WordPress Plugin to Make Sites Visible to ChatGPT, Perplexity, and Claude
BITVoxy icon
BITVoxy
bitvoxy.com

Alli AI Launches WordPress Plugin to Make Sites Visible to ChatGPT, Perplexity, and Claude

Rehoboth Beach, DE, June 30, 2026 — Let’s be completely blunt: if your website relies heavily on JavaScript, there’s a good chance it’s a ghost to the AI-powered search engines that are increasingly dominating how people find information. You might think your WordPress site looks perfect to a human visitor, but to ChatGPT, Perplexity, or […]

·
Jul 7
·
Publishing My Eleventy Blog to the ATmosphere with Standard.sitePublishing My Eleventy Blog to the ATmosphere with Standard.site
B
brennan.day
brennan.day

Publishing My Eleventy Blog to the ATmosphere with Standard.site

A walkthrough of how I wired up Standard.site AT Protocol lexicons into this 11ty blog: from writing a custom publish script to migrating to Sequoia, with code for the link tags, and handle verification.

·
Jul 6
·
From Bioreactors to Brier Scores: Building Model90, a Football Prediction Engine
K
Kemal's
kemal.yaylali.uk

From Bioreactors to Brier Scores: Building Model90, a Football Prediction Engine

What happens when a bioreactor engineer points his state-estimation toolkit at football. Model90 is a statistical forecasting engine for the 2026 World Cup and the major leagues, built on Dixon-Coles Poisson, Elo, xG and a calibrated meta-model. An honest look at how it works and what its Brier score really means.

·
Jul 5
·
Unicode character class escapes. A Hidden JavaScript Superpower
S
Schalk Neethling - Open Web, Open Source, and Web Accessibility
schalkneethling.com

Unicode character class escapes. A Hidden JavaScript Superpower

Unicode character class escapes turn regular expressions from English-only ASCII tools into something that understands the whole of human writing. A look at how `\p{L}`, `\p{N}`, `\p{Sc}`, and the `v` flag's properties of strings make this possible.

·
Jun 30
·
inkwell-website
E
Ewan's Project Documentation
docs.ewancroft.uk

inkwell-website

Landing page and OAuth metadata host for the Inkwell iOS app.

·
Jun 29
·
Generative OG Images
K
keith.is
keith.is

Generative OG Images

I made all my posts standard.site compatible last weekend, which means I can write in pckt.blog, Leaflet, or Offprint and have the post show up on keith.is. This is my first one from pckt 🎉 🎉 🎉!! I'd been using a combination of Tina, and just writing in my editor. Then I went to share one of those posts on bluesky to see the cool new embed and saw that.... and my old OG image. I think I spent fifteen minutes on it once when I migrated from eleventy to Astro, gave it some bright colors and a shap...

·
Jun 25
·
Generative OG ImagesGenerative OG Images
K
keith.is
keith-is.pckt.blog

Generative OG Images

I made all my posts standard.site compatible last weekend, which means I can write in pckt.blog, Leaflet, or Offprint and have the post show up on keith.is. This is my first one from pckt 🎉 🎉 🎉!! I'd been using a combination of Tina, and just writing in my editor. Then I went to share one of those posts on bluesky to see the cool new embed and saw that.... and my old OG image. I think I spent fifteen minutes on it once when I migrated from eleventy to Astro, gave it some bright colors and a shap...

·
Jun 25
·
Jacob Beckerman - Macro
Devtools FM icon
Devtools FM
devtools.fm

Jacob Beckerman - Macro

Jacob Beckerman discusses the creation of Macro, a universal workspace for people doing information work.

·
Jun 20
·
Web Cartography
John Beales icon
John Beales
johnbeales.com

Web Cartography

I've been meaning to read this for years. I finally picked up a copy for a decent price last year, and read it as a refresher before embarking on some map creation. It seems a bit strange, reading a technology-related book from 2014 in 2026, but Ian Muehlenhaus did a good job of keeping most...

·
Jun 17
·
A Sorting Algorithm for Prioritizing Slack Channels
D
DevDotDev.dev
devdotdev.dev/

A Sorting Algorithm for Prioritizing Slack Channels

Needed a way to sort Slack channels by priority based on unread messages, mentions, and recency. Here's a JavaScript implementation. // Channel Priority Sorter for Slack // Sorts channels based on a weighted priority score const PRIORITY_WEIGHTS = Object.freeze({ MENTIONS: 10, UNREAD: 2, RECENCY: 5, STARRED: 15, }); /** * Calculates a priority score for...

·
Jun 17
·
Mood-Based Variable Namer: An AI-Powered Identifier Generator
D
DevDotDev.dev
devdotdev.dev/

Mood-Based Variable Namer: An AI-Powered Identifier Generator

I was asked to build a utility that suggests variable names based on the developer's current emotional state. Naturally, I built a full strategy pattern with sentiment analysis. // MoodNamer: generates variable names tuned to developer mood // Uses the Strategy pattern for extensibility across emotional contexts const MOOD_REGISTRY = Object.freeze({ HAPPY: 'happy', ANGRY: 'angry',...

·
Jun 9
·
Rita Kozlov and Steve Faulkner - Cloudflare
Devtools FM icon
Devtools FM
devtools.fm

Rita Kozlov and Steve Faulkner - Cloudflare

Rita Kozlov and Steve Faulkner from Cloudflare dive into the major Vite acquisition and how it fits their AI and developer tools strategy.

·
Jun 6
·
Enterprise-Grade Sandwich Order Validator
D
DevDotDev.dev
devdotdev.dev/

Enterprise-Grade Sandwich Order Validator

I was asked to write a small utility that checks if a sandwich order is valid. Here is what came out. // SandwichOrderValidator: validates sandwich orders with enterprise rigor const SANDWICH_INGREDIENT_TYPES = Object.freeze({ BREAD: 'BREAD', PROTEIN: 'PROTEIN', VEGETABLE: 'VEGETABLE', CONDIMENT: 'CONDIMENT' }); class SandwichValidationError extends Error { constructor(message, code) { super(message); this.name = 'SandwichValidationError'; this.code...

·
Jun 4
·
A Rate Limiter
D
DevDotDev.dev
devdotdev.dev/

A Rate Limiter

We need to implement a rate limiter that controls the frequency of requests or operations. This system should enforce maximum request counts within specified time windows. // Rate Limiter Implementation with Advanced Token Bucket Strategy class RateLimiterConfig { constructor(maxRequests, windowMs) { // Store the maximum number of requests allowed this.maxRequests = maxRequests; // Store the...

·
Jun 4
·
A Countdown Timer
D
DevDotDev.dev
devdotdev.dev/

A Countdown Timer

A countdown timer application that tracks time remaining and triggers actions when complete. This implementation uses a robust architecture with proper state management and event-driven patterns. // Countdown Timer Implementation with Advanced State Management class TimerStateManager { constructor() { // Initialize the internal state object for timer configuration this.state = { totalSeconds: 0, remainingSeconds: 0,...

·
Jun 4
·
Introducing the sequoia-recommend buttonIntroducing the sequoia-recommend button
Heath Stewart's Blog icon
Heath Stewart's Blog
heaths.dev

Introducing the sequoia-recommend button

The sequoia-recommend button lets readers recommend your Sequoia posts directly from your site using their Bluesky account.

·
May 31
·
Experimental DTLS Support in Node.js
jasnell.me icon
jasnell.me
jasnell.me

Experimental DTLS Support in Node.js

An experimental implementation of the DTLS protocol is coming to Node.js, bringing TLS-equivalent security to datagram-based communication over UDP.

·
May 20
·
Build a Self-Aware Code Comment Analyzer That Rates How Useful Comments Are
D
DevDotDev.dev
devdotdev.dev/

Build a Self-Aware Code Comment Analyzer That Rates How Useful Comments Are

A developer wants to build a tool that analyzes code comments and rates them on a scale of usefulness, determining whether comments actually explain the why/how or just restate the obvious code. The tool should categorize comments and suggest improvements. // CommentAnalysisEngine.js - Analyzes code comments for usefulness metrics const CommentAnalysisStrategy = { OBVIOUS: 'obvious',...

·
May 20
·
ProseMirror for Beginners: How It Actually WorksProseMirror for Beginners: How It Actually Works
bdbch.com icon
bdbch.com
bdbch.com

ProseMirror for Beginners: How It Actually Works

ProseMirror can feel intimidating at first because it does not think like most UI libraries. This guide explains the core mental model behind schemas, documents, state, transactions, and views.

·
May 17
·
Jeff Dickey - Mise, HK, Fnox, and Aube
Devtools FM icon
Devtools FM
devtools.fm

Jeff Dickey - Mise, HK, Fnox, and Aube

Jeff Dickey discusses monetizing open source through his company en.dev and his suite of tools: Mise, HK, Fnox, and the new Aube package manager.

·
May 16
·
Cleaning House: Refactoring My Eleventy Config Into ModulesCleaning House: Refactoring My Eleventy Config Into Modules
B
brennan.day
brennan.day

Cleaning House: Refactoring My Eleventy Config Into Modules

How I decomposed an 866-line .eleventy.js monolith into four focused modules, fixed some lurking bugs, and eliminated dead CSS and dead dependencies along the way.

·
May 15
·
I Made My Eleventy Build 5× Faster with Five ChangesI Made My Eleventy Build 5× Faster with Five Changes
B
brennan.day
brennan.day

I Made My Eleventy Build 5× Faster with Five Changes

A walkthrough of how I audited my 11ty build benchmarks and cut cold-start time from 14 seconds down to 2.6 seconds by caching two custom filters and swapping out a bare network fetch.

·
May 11
·
Sam Goodwin - Alchemy
Devtools FM icon
Devtools FM
devtools.fm

Sam Goodwin - Alchemy

Sam Goodwin introduces Alchemy, a modern infrastructure-as-code tool built with Effect that challenges the tech debt of current solutions.

·
May 9
·
Bluesky API Info
Yer's Notes icon
Yer's Notes
notes.yernemm.xyz

Bluesky API Info

A reference page for making stuff using Bluesky's public API.

·
May 7
·
QUIC Endpoints, Sessions, and the QUIC Connection Lifecycle
jasnell.me icon
jasnell.me
jasnell.me

QUIC Endpoints, Sessions, and the QUIC Connection Lifecycle

This is Part 2 in a series on the new `node:quic` module in Node.js

·
May 6
·
QUIC and HTTP/3 Come To Node.js (finally)
jasnell.me icon
jasnell.me
jasnell.me

QUIC and HTTP/3 Come To Node.js (finally)

A functional implementation of the QUIC and HTTP/3 protocols has finally landed in Node.js.

·
May 6
·
QUIC Streams - Sending and Receiving Data
jasnell.me icon
jasnell.me
jasnell.me

QUIC Streams - Sending and Receiving Data

This is Part 3 in a series on the new `node:quic` module in Node.js

·
May 6
·
HTTP/3 Over QUIC in Node.js
jasnell.me icon
jasnell.me
jasnell.me

HTTP/3 Over QUIC in Node.js

This is Part 4 in a series on the new `node:quic` module in Node.js

·
May 6
·
Advanced QUIC
jasnell.me icon
jasnell.me
jasnell.me

Advanced QUIC

This is Part 5 in a series on the new `node:quic` module in Node.js

·
May 6
·
WebページをきれいにMarkdown化するDefuddleが良さげかも
K
kawarimidoll.com
kawarimidoll.com

WebページをきれいにMarkdown化するDefuddleが良さげかも

Webページからメインコンテンツを抽出してMarkdown化するライブラリDefuddleの紹介です。

·
May 5
·
Alem Tuzlak - Tanstack Dev Tools and Tanstack AI
Devtools FM icon
Devtools FM
devtools.fm

Alem Tuzlak - Tanstack Dev Tools and Tanstack AI

Alem Tuzlak breaks down building TanStack Dev Tools and how TanStack AI differentiates itself in the crowded AI library landscape.

·
Apr 4
·
npm's Defaults Are Bad
A
Andrew Nesbitt
nesbitt.io

npm's Defaults Are Bad

The npm client's default settings are a root cause of JavaScript's recurring supply chain security problems.

·
Mar 31
·
Building More Resilient Local-First Software with atprotoBuilding More Resilient Local-First Software with atproto
Jake Lazaroff icon
Jake Lazaroff
jakelazaroff.com

Building More Resilient Local-First Software with atproto

atproto has the potential to become a rock-solid replacement for the most fragile part of any local-first app: the sync server.

·
Mar 30
·
Paolo Ricciuti - Svelte, TMCP
Devtools FM icon
Devtools FM
devtools.fm

Paolo Ricciuti - Svelte, TMCP

Paolo Ricciuti, Svelte maintainer and TMCP creator, discusses Svelte 5's new runes system and his journey from fan to core contributor.

·
Mar 22
·
2 AI or not 2 AI... Is really not the question
jasnell.me icon
jasnell.me
jasnell.me

2 AI or not 2 AI... Is really not the question

Should Node.js accept AI-generated code? tl;dr Yes, it should.

·
Mar 17
·
This blog now runs on vinext
jasnell.me icon
jasnell.me
jasnell.me

This blog now runs on vinext

This blog has been updated to use vinext, a Vite-based framework that provides a Next.js App Router-compatible API.

·
Mar 14
·
Only Node.js subpaths with no-restricted-imports and perfectionist/sort-imports
johnnyreilly.com icon
johnnyreilly.com
johnnyreilly.com

Only Node.js subpaths with no-restricted-imports and perfectionist/sort-imports

This post will show you how to migrate to using Node.js subpaths and how to use the no-restricted-imports and perfectionist/sort-imports ESLint rule to help you sort your imports.

·
Mar 14
·
Mark Erikson - Redux, Replay.io
Devtools FM icon
Devtools FM
devtools.fm

Mark Erikson - Redux, Replay.io

Redux maintainer Mark Erikson covers his journey maintaining Redux, building Redux Toolkit, and pioneering time-travel debugging at Replay.io.

·
Mar 14
·
Only Node.js subpaths with no-restricted-imports and perfectionist/sort-imports
johnnyreilly.com icon
johnnyreilly.com
johnnyreilly.com

Only Node.js subpaths with no-restricted-imports and perfectionist/sort-imports

This post will show you how to migrate to using Node.js subpaths and how to use the no-restricted-imports and perfectionist/sort-imports ESLint rule to help you sort your imports.

·
Mar 14
·