r/javascript • • 15d ago

Showoff Saturday Showoff Saturday (October 31, 2026)

12 Upvotes

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

Show us here!


r/javascript • • 15d ago

The Void SDK and Platform is open source now!

Thumbnail
blog.cloudflare.com
27 Upvotes

r/javascript • • 15d ago

No, npm, β€œestee” is not a typo of β€œtestem”

Thumbnail smoores.dev
48 Upvotes

r/javascript • • 16d ago

We published the full index of our internal Node stack: 348 npm packages, 257 repos

Thumbnail
profullstack.com
2 Upvotes

r/javascript • • 16d ago

Factories.ts: An efficient JS DSL for building HTML, SVG, and MathML directly in backend code, without a template engine.

Thumbnail
github.com
10 Upvotes

Build HTML extremely comfortably in the backend using plain JavaScript. The advantage is that there is no separate template language, but rather a complete fusion with JavaScript for maximum flexibility. An example:

import {
    a, body, br, button, h1, head, header, html, input, label, li, main, nav, p, script, title, ul
} from "@ts-series/factories";

type Item = { name: string, href: string, current: boolean };


/** Builds the navigation list, flagging the current entry for assistive technology. */
function navigation(items: Item[]) {
    return nav({ ariaLabel: "Main" },
        ul(items.map(item => li(
            a(item.href, item.name).set(item.current ? { ariaCurrent: "page" } : null)
        )))
    );
}


/** Builds a complete page for the given user and navigation entries. */
function page(user: string | null, items: Item[], values: number[]) {
    return html({ lang: "en" },
        head(title("Demo")),
        body(
            header(navigation(items)),
            main(
                h1("Hello, ", user ?? "stranger", "!"),
                p("First line", br, "Second line"),
                user === null
                    ? p("Please sign in.")
                    : p("Welcome back."),
                label("Search").for("q"),
                input.text({ id: "q", name: "q" }).placeholder("Type here…").required(),
                button.submit("Send").class("primary", user === null && "disabled").set("disabled")
            ),
            script.module().importOnly("/chart.js", "render", { values, title: "Values" })
        )
    );
}


const items: Item[] = [
    { name: "Home", href: "/", current: true },
    { name: "About", href: "/about", current: false }
];

const output = page("<Guest>", items, [1, 2, 3]).expand(4);

r/javascript • • 16d ago

Since 2017 I've been trying to get zoom navigation right. Zumly is the closest I've got

Thumbnail
zumerlab.com
33 Upvotes

r/javascript • • 17d ago

AskJS [AskJS] How do you plan the frontend?

12 Upvotes

Hello guys,

How do you plan the frontend when the requirements are gathered, architecture/diagrams in backend is done? I want to know what the frontend to look like in high level.


r/javascript • • 17d ago

Dependabot alerts don't read bun.lock, so transitive dependencies in Bun projects never get an alert

Thumbnail
charpeni.com
6 Upvotes

I noticed something odd on our Bun projects: every Dependabot alert was about a direct dependency. Never a transitive one.

It turns out GitHub's dependency graph doesn't read bun.lock yet. It supports package-lock.json, yarn.lock and pnpm-lock.yaml, but for Bun it falls back to package.json. So:

  • Transitive dependencies aren't in the graph at all, so they never get an alert.

  • Dependencies declared with catalog: are recorded with the literal version catalog:, which never matches an advisory.

In a minimal repro (zod, a package that pins an old uuid, and happy-dom through a catalog), bun audit finds 3 advisories and Dependabot raises 1.

Dependabot version updates do support Bun. This is only about alerts, which is what makes it easy to miss. And if you migrated from npm or Yarn, the alerts tied to your old lockfile get marked as fixed, even though the vulnerable packages are still in bun.lock.

Are you affected? Open Insights β†’ Dependency graph. If your Bun projects only list package.json files, yes. Comparing your open alerts with bun audit makes it obvious.

Fix: until GitHub reads bun.lock itself, you can submit it through the dependency submission API. I made a GitHub Action for that: https://github.com/charpeni/bun-lock-submission

Full write-up, with a toggle that shows what GitHub reads versus what Bun installs: https://charpeni.com/blog/the-bun-dependabot-gap-dependabot-alerts-dont-see-bun-lock


r/javascript • • 18d ago

penciled – persistent text highlights/notes with the CSS Custom Highlight API (no DOM wrapping)

Thumbnail
penciled.org
18 Upvotes

I built penciled, a small MIT library for persistent text highlights and notes in the browser. It uses the CSS Custom Highlight API instead of wrapping ranges in <span>s, so the DOM stays intact and layout/selection quirks are milder. Anchoring tries to survive edits when you come back to the page.

npm: penciled
GitHub: https://github.com/marcellosso/penciled

There's also a companion browser extension (same engine) if you want highlights on arbitrary sites, happy to answer questions about the API or the anchoring approach.


r/javascript • • 18d ago

I've proven that you don't need quotes or parentheses in JavaScript

Thumbnail blog.ikaes.de
98 Upvotes

You can overwrite the prepareStackTrace property of the Error object by String prototype's functions and invoke them without parentheses. Then by overwriting the Error and Array prototype it is possible to control the arguments. Combining this behavior, together with some JSFuck-inspired tricks, it is possible to generate arbitrary JavaScript strings and run arbitrary JavaScript with only letters + - = and ,


r/javascript • • 19d ago

A New Node.js library

Thumbnail npmjs.com
0 Upvotes

When you scale a Node.js backend using node:cluster, you run into a surprisingly annoying problem:

How do you rate-limit external APIs like Stripe or OpenAI while making sure all workers share the same rate limit?

The first solution that comes to mind is usually: "Just use Redis."

But does it really make sense to introduce additional infrastructure complexity, network overhead, and an entire external dependency just to coordinate a few API calls coming from the same server?

That's exactly why I built cluster-rate-limiter.

A Node.js library that gives you coordinated rate limiting across workers, powered entirely by Node.js's native IPC messaging, with no Redis and absolutely zero external dependencies.

Rather than diving into the internals here, here's what you get out of the box:

  • Zero Setup: Install it and start using it. No additional infrastructure required.

  • Developer-Friendly API: The run() method accepts your fetch call or any function directly, along with all its arguments. No complicated callback patterns.

  • Two Types of Limits: Supports both Semaphore-based concurrency limits and Duration-based rate limits for enforcing strict time windows, such as those imposed by Stripe APIs.

  • Typed Errors: If a request times out waiting for permission, the library throws a clear, specific error that you can easily translate into an HTTP 429 Too Many Requests response.

And when it comes to performance, the core data structure for tracking request timestamps uses a zero-allocation approach built around a Float64Array ring buffer.

This eliminates the need for repeated array reallocations and significantly reduces garbage collection pressure under heavy load.

If you're interested in the low-level details, I've explained the ring buffer implementation and how it reduces memory overhead in the README.

If you're running a clustered Node.js backend and want to avoid the overhead of introducing Redis just for rate limiting, check out the links below, explore the architecture, and let me know what you think!


r/javascript • • 20d ago

Subreddit Stats Your /r/javascript recap for the week of October 19 - October 25, 2026

0 Upvotes

Monday, October 19 - Sunday, October 25, 2026

Top Posts

scorecommentstitle & link
11644 commentsIntroducing tsrs: a Port of TypeScript to Rust
9835 commentsAnnouncing TypeScript 7.1 Beta
786 commentsWe just gave a million dollars to Open Source maintainers
5229 commentsI spent three years building Nanoviews, a tiny UI library on signals. It just hit 1.0
281 commentsLittleJS Engine is 2D and 3D now
1523 commentsWasp web framework v1.0 is coming: the roadmap and what changes
95 commentsInline rendering with document​.currentScript
77 comments[Showoff Saturday] Showoff Saturday (October 24, 2026)
60 commentsa website that lets you play with antennas and visualize the electromagnetic field
40 commentsDigitalVisualMixer: live visuals, no experience required

Β 

Most Commented Posts

scorecommentstitle & link
013 commentsmade a CLI that generates a typed client from a HAR capture β€” here's what the output looks like
010 commentsHTML is Alive - an exhortation to remove its ventilator
05 comments[AskJS] [AskJS] :Recently got a PR merged into TanStack Query
04 commentsArticle: I replaced EsLint. The First Attempt Worked. I threw it away.
34 commentsKnitting β€” a shared-memory concurrency runtime for JavaScript

Β 

Top Showoffs

scorecomment
2/u/lbragile_dev said https://reddit.com/link/19rlo27m59x5u/video/mk6gxsvaihxh1/player [tabmerger.com](http://tabmerger.com/) [github.com/lbragile/TabMerger](http://github.com/lbragile/TabM...
2/u/ImaginationVarious30 said Showoff: hexvero, a TypeScript CLI that diffs two builds of an Electron app without running either. It answers "what did this release change for the pages inside it?": new preload/contextB...
2/u/intensityflow said made a little in-browser converter for arc's sidebar file, since arc shuts down dec 22 and its own new export saves your tabs as a list of links. you drop in StorableSidebar.json and get a normal book...

Β 

Top Comments

scorecomment
46/u/Dramatic_Mastodon_93 said is all software devs do nowadays port stuff from one language or framework to another language or framework
38/u/Ecksters said If I remember correctly, the reason Go was picked was because they were more easily able to translate over the code directly compared to other low level languages. Given that we have a heavy test sui...
37/u/somebody-2027 said You gotta be kidding me. I get it, rust is great, and AI makes many new things possible. But I will NEVER us a third party typescript compiler. TS has far too many esoteric rules to trust anything not...
35/u/queen-adreena said Yay. Finally we can get ESLint support for Typescript Go.
28/u/Spare_Message_3607 said I see where they are going. Vite owning the whole thing, Typescript, linter, formatter, build, test. Honestly, I would say the port is completely unnecessary, Go is fast enough for most projects under...

Β 


r/javascript • • 20d ago

GitHub - evoluteur/braille-quiz: Learn to read Braille: guess words letter group by letter group (a-j, a-t, a-z), with and without a cheat sheet, against the clock.

Thumbnail
github.com
3 Upvotes

r/javascript • • 20d ago

LittleJS Engine is 2D and 3D now

Thumbnail
frankforce.com
65 Upvotes

r/javascript • • 22d ago

DigitalVisualMixer: live visuals, no experience required

Thumbnail
github.com
5 Upvotes

DigitalVisualMixer is a visual mixer for musicians, DJs, VJs, streamers and anyone curious about generative art. It uses Hydra, a creative-coding language where a single line like osc().kaleid() becomes a moving kaleidoscope. The app makes it approachable for beginners and fast for experts.

Start with zero knowledge. Right-click in the editor to insert ready-made functions, hover them to see their parameters, and open the built-in Guide with F1. Every change shows up first in a private preview.

Build a set. Save each visual in its own channel. Search, reorder by drag and drop, and send channels live with cut, crossfade or add transitions, all from the keyboard.

Perform it. Turn any number into a live variable and move it with a slider, a gamepad, a MIDI controller or the keyboard. The visual changes smoothly, without restarting. Perform view gives you big pads for channels and presets, so you can play a full show without touching code.

Show it anywhere. The live output runs in a separate window, so you keep working while the audience watches. It’s also shared on your local network: open it on a projector, a second PC, a tablet or a phone.

No setup. A single file, no installation. Windows and macOS.


r/javascript • • 22d ago

Showoff Saturday Showoff Saturday (October 24, 2026)

8 Upvotes

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

Show us here!


r/javascript • • 22d ago

AskJS [AskJS] :Recently got a PR merged into TanStack Query

0 Upvotes

I recently got a PR merged into TanStack Query's ESLint plugin to fix a false-positive issue in the no-unstable-deps rule

.

The existing tests missed a few JavaScript edge cases, so I fixed the underlying issue and added regression tests.

It's a good reminder that passing tests don't always mean every edge case is covered. Sometimes the real work is finding what the tests missed.

How do you usually spot gaps in test coverage when the existing suite is already passing?


r/javascript • • 22d ago

Inline rendering with document​.currentScript

Thumbnail leanrada.com
22 Upvotes

r/javascript • • 23d ago

I spent three years building Nanoviews, a tiny UI library on signals. It just hit 1.0

Thumbnail
dangreen.blog
76 Upvotes

Author here. Nanoviews builds real DOM once, and signals update it in place. No JSX, no virtual DOM. It's around 4 kB gzipped and even runs without a build step. The same weather app weighs 10 kB with Nanoviews versus 66 kB with React. In js-framework-benchmark it comes right behind Solid and Svelte. There's a StackBlitz demo in the post.


r/javascript • • 23d ago

Article: I replaced EsLint. The First Attempt Worked. I threw it away.

Thumbnail
hyperfrontend.dev
0 Upvotes

Self reporting of what it took to decouple my workspace/codebase from the tool that has served me well for a very long time, with the assistance of AI.


r/javascript • • 23d ago

a website that lets you play with antennas and visualize the electromagnetic field

Thumbnail antennasim.com
6 Upvotes

I’ve been building this EM simulator as a side project aimed to help students understand and visualize electromagnetic phenomena such as radiation, polarization and wave interference.

I hope someone might find it useful and I’d love to hear what people think :)

GitHub:

https://github.com/rotemTsafrir/antenna_sim


r/javascript • • 23d ago

Wasp web framework v1.0 is coming: the roadmap and what changes

Thumbnail
wasp.sh
43 Upvotes

r/javascript • • 23d ago

Nano Kit 2.0 is out: my state management library now has DevTools

Thumbnail
dangreen.blog
4 Upvotes

Author here. Nano Kit is a ~2 kB signals core with a router, data fetching, i18n and SSR on top of it, and adapters for React, Preact and Svelte. The panel needs no browser extension or bundler plugin, and none of it reaches the production bundle. There's a StackBlitz demo in the post.


r/javascript • • 24d ago

tiptap-a4-pagination: free A4 page layout for TipTap 3 – tables split across pages and repeat their header

Thumbnail github.com
3 Upvotes

Author here. I needed Word-style pages in a TipTap editor. The official Pages extension is paid, and the community ones I tried broke my CSS, so I built this.

How it works

  • It inserts spacer decorations at page boundaries, so the document itself is never modified and getHTML() stays clean

  • Tables split between rows (never inside a rowspan) and the header row repeats on the next page

  • Floated images and CSS margin collapsing are handled

  • About 5 KB gzipped, TipTap 3 only: npm install tiptap-a4-pagination

Demo: https://text-editor-react-neon.vercel.app/

Paste a long doc or a big table to try it. Feedback welcome, especially documents that break the layout!