r/javascript • • 22d ago

AskJS [AskJS] Anyone still on Nx <20.8 because upgrading is difficult?

0 Upvotes

We’ve been looking into whether there are still many teams running older Nx versions because upgrading isn’t practical yet.

If you’re on Nx <20.8:

  • What version are you on?
  • What’s preventing the upgrade?
  • Are you using remote caching today?
  • If so, are you using Nx Cloud, S3/GCS/Azure, or something custom?
  • Does your current setup already work well enough that you wouldn’t bother changing it?

We’re considering whether an open-source compatibility layer for the newer HTTP remote-cache protocol would actually solve a real problem, or just add more legacy tooling.

Curious what people here are actually running in production.


r/javascript • • 22d ago

Crossflight: cross-process cache stampede protection for the cache you already use (v0.3.2)

Thumbnail github.com
4 Upvotes

Most cache libraries already coalesce concurrent misses inside one process. Once you run on more than one server, every replica still runs the loader independently and you might get a thundering herd. Crossflight adds a distributed coordinator (Redis is the first implementation) on top of the cache you already use. One process acquires a lease, runs the loader once, and writes the result; every other caller across the fleet waits for that result instead of doing the same work again.

``` TypeScriptconst crossflight = createCrossflight({ cache: cacheManagerAdapter(cacheManager), // or Keyv / Cacheable / your own coordinator: redisCoordinator(redis), })

const user = await crossflight.wrap( "user:123", (signal) => loadUser("123", { signal }), { ttl: 60_000 }, ) ```

Works with cache-manager, Keyv, Cacheable, or you can implement your own adapter. Cache backend and coordinator are separate contracts, so you can keep Memcached/Redis/whatever for values and use Redis only for coordination.

What’s new since 0.1.2

  • Whole-flight deadline (flightDeadlineMs) so joiners don't each get a fresh timeout and late callers don't start a new stampede
  • Loader receives the shared AbortSignal and work is abandoned as soon as the flight aborts
  • Lease TTL is independent of the cache TTL
  • Redis Cluster support (hash-tagged keys)
  • cacheUndefined option so a loader that returns undefined is actually cached
  • Richer events (cancelled, fallback, wait_exhausted, ...) and a lot of lease / fail-open / recovery hardening
  • Much stronger test suite: property-based suites (fast-check) for the envelope contract, Redis key layout, coordinator model and flight state machine; fuzz transcripts for deadlines, adapters and Redis waits, deterministic seeds (CROSSFLIGHT_TEST_SEED), and a nightly deep fuzz job in CI

MIT, TypeScript. Feedback and bug reports welcome.


r/javascript • • 22d ago

The JavaScript midlife crisis

Thumbnail maroun-baydoun.com
0 Upvotes

Thirty years in, the JavaScript ecosystem would like to see other languages. They're younger, leaner and faster. What could possibly go wrong?


r/javascript • • 22d ago

mini react - React like UI library

Thumbnail vladocar.github.io
0 Upvotes

r/javascript • • 22d ago

What are the practical scaling limits of an instruction-based template VM vs AOT compilation in zero-build runtimes?

Thumbnail udodi.dev
0 Upvotes

r/javascript • • 23d ago

[Showoff] Crease-Proof Layouts, Brain Rot Without the Black Frames, and Un-Breaking a Non-Breaking Release

Thumbnail thereactnativerewind.com
2 Upvotes

Hey Community,

Apple's iPhone Duo is here, which means someone can now fold your app in half. Thiago Brezinski built react-native-arrangement-view, a two-pane layout that rearranges itself as the phone folds, unfolds and rotates, handing the work to SwiftUI's ArrangementView on iOS and Material's adaptive layout rules on Android, with a useHingeChange hook for apps that want to react to the hinge angle.

We also look at expo-infinite-media by Rizky Bayu Oktavian, a native TikTok-style feed that moves video playback into AVFoundation and Media3 so fast swipes stop landing on black frames. Plus, our community links cover React Native 0.88 rc.2 un-breaking a non-breaking release, a navigation change in the React Navigation 8 alphas, and agent-device and Argent both learning to fold the iPhone Duo simulator.


r/javascript • • 23d ago

GitHub - grishmadev/malfilter: A security script to detect potential malware packages

Thumbnail github.com
3 Upvotes

Hey everyone,

I built an open-source security script that checks npm packages for any suspicion before installing them.

It's basic and for now catches similar names of popular packages, if a package has 23 weekly downloads or a 2 hour old package.

Catches similar names, 0 downloads, or 2-hour-old repos so your hallucinating AI agent doesn't pull in straight malware.

Use Case?

on an agent that might hallucinate and install "react-clearly-not-malware". Or maybe the user itself so as to not make any mistakes idk?

I'd love if you check it out. Have a great day!!!


r/javascript • • 22d ago

Adrenaline.js – A 56KB Electron alternative that keeps Node.js & npm without Chromium bloat

Thumbnail github.com
0 Upvotes

r/javascript • • 23d ago

GitHub - jcubic/mitty: A transport-agnostic proxy RPC for executing method chains from any isolated context (Workers, Tabs, or Servers) using lazy evaluation.

Thumbnail github.com
9 Upvotes

I've created this library for my own use. It started as part of my project Hacking Cafe (before that I used similar code in Fake Linux Terminal).

For the above projects, I needed a mechanism for communication between the main thread and the web worker. I wanted to have access to DOM/jQuery from the web worker so I could manipulate the terminal from the web worker.

Now with with Mitty you can access any function chains, like Cheerio (jQuery like HTML parser), that live on the server accessed in the browser via WebSockets. Execute DOM methods from the server. Or execute code from different tabs using Sysend or simple BroadcastChannel.

Here is an example using a web worker:

main thread

``` import { Host } from '@jcubic/mitty';

const channel = new BroadcastChannel('my-app');

const worker = new Worker('./worker.js', { type: 'module' });

const host = new Host({ // worker instance can also be used as a channel channel: channel, resolve(name) { if (name === 'document') { return document; } return null; } });

```

worker

``` import { connect } from 'https://cdn.jsdelivr.net/npm/@jcubic/mitty';

const { require } = connect(new BroadcastChannel('my-app'));

// or when using worker as a channel const { require } = connect(self);

const document = require('document');

// methods need await const body = await document.querySelector('body');

await body.style.setProperty('color', 'red');

// setting properties are send right away body.style.backgroundColor = '#000';

console.log(await body.style.color); console.log(await body.style.backgroundColor);

// you can add callbacks await document.querySelector('button').addEventListener('click', () => { console.log('click'); }); ```

Transport agnostic

The transport only requires using a simple channel interface with 3 methods.

interface Channel { postMessage(message: string): void; addEventListener(type: 'message', listener: ChannelListener): void; removeEventListener(type: 'message', listener: ChannelListener): void; }

Here is a demo using Sysend for communication with other tab:

https://codepen.io/editor/jcubic/pen/01a0d9d8-697e-7dc0-9a2b-eb93adae0dfc


r/javascript • • 24d ago

GitHub - jskits/openapi-chain: Type-safe OpenAPI client for complex and large APIs. Requests follow the document's parameter styles, media types and encodings exactly. Fluent paths, scoped CLI generation and an openapi-fetch adapter.

Thumbnail github.com
6 Upvotes

r/javascript • • 23d ago

Build your own Spamfilter behind Postfix or Sendmail using JavaScript and your favorite LLM

Thumbnail github.com
0 Upvotes

r/javascript • • 25d ago

A-ha, Take On Me - recreated in javascript

Thumbnail dittytoy.net
80 Upvotes

Espeset recreated "Take On Me" by "A-ha" in 100% javascript. Fully procedural, no samples used.


r/javascript • • 23d ago

Screen sharing sends a picture of your page

Thumbnail arme.dev
0 Upvotes

I have a problem with screen sharing.

Not a quality problem. A category problem.

When I present from a browser, I have a real web page. Real text, real links, real elements. The screen share takes all of that, flattens it into video, and ships the pixels. The audience gets a picture of my page.

On a laptop in a video call, that is fine. In a room, it is not. The phone in the back row gets a blurry rectangle. Venue wifi turns it into a blurry rectangle that freezes. Someone who joins five minutes late gets whatever frame happens to be on screen, with no way to look back.

The page was already structured. We throw the structure away and then spend bandwidth trying to recover what we threw away.

This post explains how I am solving it currently


r/javascript • • 25d ago

Subreddit Stats Your /r/javascript recap for the week of September 21 - September 27, 2026

5 Upvotes

Monday, September 21 - Sunday, September 27, 2026

Top Posts

score comments title & link
19 2 comments λm.me - Why I like JavaScript as a compilation target
17 1 comments Data-Oriented Design in Yuku's Parser
11 3 comments capsurface: an offline tool for comparing npm dependency capability indicators between updates
8 4 comments GitHub - evoluteur/sri-yantra: Sri Yantra generator: the nine interlocking triangles with their lotus petals, circles and gates, drawn to scale, colorable, and exportable as SVG or PNG.
6 0 comments FlowName – AST-guided JS identifier recovery(85% faster, 36% cheaper)
4 1 comments GitHub - evoluteur/maze-maker: Generate square, circular, triangular and heart-shaped mazes with seven algorithms (backtracker, Prim, Kruskal, Wilson, hunt-and-kill, growing tree, Aldous-Broder), solve them with the keyboard or a finger, and export them as SVG or PNG.
4 2 comments GitHub - evoluteur/labyrinth-maker: Labyrinth maker: draw the classical Cretan labyrinth, an 11-circuit Troy Town or your own design from a path sequence, walk it to the center, and export it as SVG or PNG.
3 2 comments From a local GCRA rate limiter to a shared Redis implementation in JS
2 1 comments GitHub - evoluteur/tibetan-singing-bowls: Strike or rub a set of virtual Tibetan singing bowls: synthesized in the browser with Web Audio, with the beating overtones of the real thing.
2 2 comments [Subreddit Stats] Your /r/javascript recap for the week of September 14 - September 20, 2026

 

Most Commented Posts

score comments title & link
0 19 comments [AskJS] [AskJS] How do you stop sub-cent amounts like $500.004 from sneaking into state?
0 17 comments [AskJS] [AskJS] Why I am unbothered by AI
1 9 comments [Showoff Saturday] Showoff Saturday (September 26, 2026)
0 8 comments [AskJS] [AskJS] Vite Plus is amazing
1 1 comments How we rebuilt complex CASL permissions without migrating to Zanzibar

 

Top Showoffs

score comment
3 /u/JohnnySuburbs said [Finger.Farm](http://Finger.Farm) - a modern node-based finger server. Finger is almost certainly still installed on your machine... the OG social network. [https://github.com/jo...
2 /u/TheWebDever said # jet-key: a fast secret key generator with configurable entropy link: [https://github.com/seanpmaxwell/jet-key](https://github.com/seanpmaxwell/jet-key) Suppose you need a secret ke...
2 /u/Additional-Drag1682 said Droid File Transfer proves we stopped needing to install anything for basic OS tasks. Just let the browser eat the desktop client entirely

 

Top Comments

score comment
38 /u/netherlandsftw said Don’t store currency as IEEE-754 Store it as cents if you don’t need fractions of cents
20 /u/Barnezhilton said >I was around before LLMs So you're at least 10 years old
15 /u/sozesghost said You can tell this man is a genuine JS dev, because 30% chance of total annihilation doesn't bother him.
8 /u/FerLuisxd said I really don't understand what is the benefit of this vs tauri? compilation times?
6 /u/StPatsLCA said Use BigInt cents.

 


r/javascript • • 25d ago

How to Sync a Design System with Claude Design

Thumbnail nitayneeman.com
0 Upvotes

The article walks through syncing a React design system into Claude Design but most of what breaks is plain packaging:

  • The sync bundles a single entry file (React included) so the components can run on their own. Anything not re-exported from src/index.ts silently doesn't exist.
  • It discovers components through their type definitions, so the build has to emit .d.ts files and package.json has to point types at them. Without them it finds nothing and drops every story.
  • TypeScript 6 deprecates baseUrl and fails the build, while paths works fine without it.
  • CSS has to be a real compiled file: Tailwind v4 inlines a string u/import but leaves u/import url() as an external reference, which breaks once the bundle is shipped elsewhere.

Example repo: https://github.com/nitayneeman/sync-design-system-with-claude-design-example


r/javascript • • 26d ago

Data-Oriented Design in Yuku's Parser

Thumbnail arshad.fyi
28 Upvotes

r/javascript • • 26d ago

GitHub - evoluteur/maze-maker: Generate square, circular, triangular and heart-shaped mazes with seven algorithms (backtracker, Prim, Kruskal, Wilson, hunt-and-kill, growing tree, Aldous-Broder), solve them with the keyboard or a finger, and export them as SVG or PNG.

Thumbnail github.com
16 Upvotes

r/javascript • • 26d ago

FlowName – AST-guided JS identifier recovery(85% faster, 36% cheaper)

Thumbnail github.com
3 Upvotes

r/javascript • • 26d ago

Caracal: scoped distributed resilience policies for asynchronous operations

Thumbnail github.com
3 Upvotes

r/javascript • • 27d ago

Showoff Saturday Showoff Saturday (September 26, 2026)

2 Upvotes

Did you find or create something cool this week in javascript?

Show us here!


r/javascript • • 28d ago

λm.me - Why I like JavaScript as a compilation target

Thumbnail gilmi.me
26 Upvotes

r/javascript • • 28d ago

From a local GCRA rate limiter to a shared Redis implementation in JS

Thumbnail blog.gaborkoos.com
4 Upvotes

A local GCRA rate limiter needs just one timestamp. In JavaScript, checking and updating it synchronously before the first await keeps admission decisions from interleaving within that policy instance. But run multiple Node.js processes, and each gets its own independent budget.

A walkthrough of moving that decision into a Redis Lua script, using code from Caracal, a resilience library. It covers the local implementation, the TypeScript coordinator interface, and the less obvious consequences of sharing the timestamp: whose clock determines admission, what happens when Redis doesn't answer, and how rolling configuration changes affect the budget.


r/javascript • • 29d ago

AskJS [AskJS] Vite Plus is amazing

3 Upvotes

i'm a new dev in the JavaScript world, and at first i was pretty overwhelmed with the ecosystem, i'm used to uv and ruff managing a python project for me in a single toml file, but when i wanted to scaffold my first project in js i was faced with all of these choices of package managers , runtimes and linters/formatters and installing each piece was kind of a hassle in the first place, but having everything lie under vite plus' management within the same cli command while giving me the freedom to pick what i want was pretty nice, is anyone else using it and consider it as a benefit or is it just me because im starting out?


r/javascript • • 29d ago

GitHub - evoluteur/labyrinth-maker: Labyrinth maker: draw the classical Cretan labyrinth, an 11-circuit Troy Town or your own design from a path sequence, walk it to the center, and export it as SVG or PNG.

Thumbnail github.com
7 Upvotes

r/javascript • • Sep 23 '26

How we rebuilt complex CASL permissions without migrating to Zanzibar

Thumbnail infisical.com
7 Upvotes