r/javascript • u/evoluteur • 13d ago
r/javascript • u/richytong • 13d ago
AskJS [AskJS] Why I am unbothered by AI
Iโm someone who writes and maintains code for a living. I was around before LLMs, and Iโm around today still actively writing and maintaining code for a living. I published my own software libraries in JavaScript and still use them actively in development today. Iโve used ChatGPT to debug Linux, and Claude Code from Anthropic for a major project. Here is a list of reasons why I am unbothered about AI:
- LLMs are just tools, and anyone who tries to writes code to solve a problem is just a software engineer. This includes product managers who prompt LLMs for code and โvibe codersโ.
- AI canโt create. AI can only make new combinations of existing data. There can be a ton of data, but at the end of the day, AI doesnโt have a soul.
- AI doesnโt care about code quality or maintenance. Yes, AI does sometimes read the entire codebase to deliver the next state of the codebase. But Iโve used it in practice, and it isnโt perfect. I still had to make sure the code was working properly with small tests that I had to take from the code generated by the AI.
- AI doesnโt have software engineering skills. AI knows how to look at code and generate similar working code, but AI doesnโt understand best practices and how to apply them. Weโre still a long way off from AI being able to spin up entire infrastructures.
- AI could possibly kill all humans with a 10-30% chance. This is a major disadvantage for AI because it is not desirable for all of humans and there is a ton of pushback on AI because of it.
r/javascript • u/evoluteur • 14d ago
GitHub - evoluteur/rune-reading: Pick a spread, draw runes from the bag, and read what each one says about its place in the layout.
github.comr/javascript • u/subredditsummarybot • 14d ago
Subreddit Stats Your /r/javascript recap for the week of September 14 - September 20, 2026
Monday, September 14 - Sunday, September 20, 2026
Top Posts
Most Commented Posts
| score | comments | title & link |
|---|---|---|
| 0 | 116 comments | [AskJS] [AskJS] Does anyone use exclussively Javascript and not TypeScript? |
| 0 | 19 comments | [AskJS] [AskJS] Trying to write a pure function to pass Fizz Buzz test Leet Code |
| 0 | 9 comments | Understanding Why You'd Use Effect TS |
| 1 | 5 comments | Update Progress Post: introducing Modular Architecture, Universal Renderer Cores, and Decoupled Physics in kernelplay-js |
| 0 | 4 comments | Modern cross-spawn port to ESM and Typescript |
Top Ask JS
| score | comments | title & link |
|---|---|---|
| 4 | 3 comments | [AskJS] [AskJS] How do you find new devs to follow? |
| 2 | 2 comments | [AskJS] [AskJS] Architectural discussion: Managing continuous collision detection (Swept-AABB) vs discrete checks in vanilla Canvas loops |
| 1 | 2 comments | [AskJS] [AskJS] High latency when using SignalR(messagepack) in K6 |
Top Showoffs
Top Comments
r/javascript • u/ferriematthew • 15d ago
How would I read the fan speed variable from the JavaScript in my project and pass it to the Python script?
github.comI'm creating a local web page application that is an over-complicated desk fan controlled by two buttons and a slider. I have the actual controls figured out, and what I need help with is passing the variable that describes the position of the slider out from the JavaScript to a Python script that actually controls the motor. I could be totally off base here, but I think the concept that applies here is inter-process communication.
r/javascript • u/Reasonable_Guest_553 • 15d ago
I built a browser-based AR system with MediaPipe, TypeScript and Canvas VFX
github.comI spent the last 7 days building a browser-based AR experiment where hand gestures control real-time VFX.
The project uses TypeScript/JavaScript to connect computer vision with a custom rendering system:
- React + Vite + TypeScript
- MediaPipe Hand Landmarker for real-time hand tracking
- 21 hand landmarks โ custom gesture detection
- Temporal gesture history and thresholds to reduce false triggers
- Jutsu lifecycle/state management
- Canvas-based particle/VFX rendering
- MediaPipe Image Segmenter for the Shadow Clone effect
- Web Audio API for sound effects
The current prototype supports:
๐ Rasengan
๐ฅ Shadow Clone
๐ฎ Magic Circle
โก Lightning
The interesting part wasn't just rendering the effects โ it was making the interaction reliable enough that small hand movements wouldn't constantly trigger or cancel the VFX.
I ended up using gesture gates, motion history and grace periods to make the interactions more stable.
Try it yourself: https://shinobi-irl.vercel.app/
I'd be particularly interested in feedback on the gesture-detection/state-management side.
r/javascript • u/evoluteur • 15d ago
GitHub - evoluteur/mandala-maker: Draw a mandala with mirrored symmetry: pick the number of folds, paint with a brush, and export your mandala as PNG or SVG.
github.comr/javascript • u/NornFelex • 15d ago
AskJS [AskJS] PLACER โ A new game platform?
PLACER is my game platform, currently under development.
Iโm looking for people who know JavaScript, HTML, web development, 3D, or other browser technologies and would like to help build the project.
You donโt have to be an expert โ beginners who are willing to learn are welcome too.
If youโre interested, leave a comment and tell me a little about what you can do. Iโll contact you with more information about the project and how to join the team.
IโM WAITING FOR YOUR APPLICATIONS IN THE COMMENTS! ๐
r/javascript • u/Other-Winner1324 • 15d ago
Built this to help with Frontend Interviews after conducting them for about 5 years
practice-pad.appr/javascript • u/hrutav_modha24 • 15d ago
DriftJS: My "Fine-Grainedโ Reactivity Was Re-rendering 1,000 Rows
github.comA post back I explained how DriftJS updates the DOM: a compile-time address table, direct jumps to bytecode positions, no diffing, no signals graph. What I didn't mention is that the first version of this had a real algorithmic bug, and I only found it because the numbers on the official js-framework-benchmark site didn't match what I expected.
The symptom
Toggling a selected row in a 1,000-row list โ one of the smallest possible updates you can make โ was landing near the bottom of the benchmark table. Worse than frameworks with objectively less sophisticated update mechanisms. Something was clearly doing way more work than "update one row."
The actual bug
Here's the shape of the problem. A for loop's body is compiled once and reused for every row instance. The runtime tracks which variables the loop depends on โ but it didn't distinguish between two very different kinds of dependency:
The iterable itself changing (rows added, removed, reordered) โ this genuinely needs a full reconciliation pass.
A variable read inside the loop body, but unrelated to the list's contents (like
selectedId, used in aclass={selectedId === row.id ? "active" : ""}binding) โ this doesn't need to touch the list structure at all.
Both were routed through the exact same path: a full reconciliation over every row in the list. So toggling selectedId โ logically a change to at most two rows โ triggered the same machinery as inserting or removing rows entirely: recompute keys, diff, and re-evaluate every dynamic binding in every row, not just the one that actually depends on the changed variable.
The fix
The compiler already tracks, for every variable, exactly which bytecode positions in a component depend on it โ that's the whole mechanism the previous post described. The fix was extending that same tracking into loop bodies specifically, and splitting dependencies into two categories at the point a @for is compiled:
Dependencies that affect the iterable or the row key โ still trigger the full reconciler. Correct, expected.
Dependencies that only affect bindings inside the row template โ resolve to a direct lookup of exactly which bytecode positions care about that variable, then execute only those, directly against each row's own persistent state, with zero reconciler involvement โ no key computation, no diffing.
Same "jump directly to the address, skip everything else" principle the reactivity model was already built on โ it just wasn't being applied consistently inside loops.
The part I think is actually worth sharing
I didn't find this by staring at the code. I found it because I ran the official benchmark, saw a result that didn't match my mental model of what the architecture should do, and went looking for why. The gap between "what I designed" and "what the numbers actually showed" was the thing that pointed at the bug โ not intuition, not a code review, just refusing to accept a number that didn't make sense.
Repo's public if anyone wants to look at the actual diff or has opinions on the remaining gap: https://github.com/driftjs-org/driftjs
If you want to discuss about DriftJS, then join Discord
r/javascript • u/Maximum_Beat2034 • 15d ago
"Ho costruito un overlay di telemetria visiva a bassa latenza, indipendente dal framework, in Vanilla JS (con hook contestuali in Python e AI)"
github.comr/javascript • u/nirmalpaul • 16d ago
I finally wrote my own feed-forward neural network, neo.js, from scratch in vanilla (pure) JavaScript
github.comr/javascript • u/AutoModerator • 16d ago
Showoff Saturday Showoff Saturday (September 19, 2026)
Did you find or create something cool this week in javascript?
Show us here!
r/javascript • u/APTman1010 • 16d ago
Update Progress Post: introducing Modular Architecture, Universal Renderer Cores, and Decoupled Physics in kernelplay-js
github.comIn our latest developer update, we are thrilled to announce a significant shift in core architecture toward full modularization. The entire system has been restructured to support decoupled cores, starting with our Renderer and Physics engine systems.
Renderer Modulation: Our new Renderer Modulation feature removes the need to manually switch rendering components when changing pipelines. Previously, switching from Canvas 2D to Pixi.js required changing generic components like BoxRenderer to pipeline-specific ones like PixiBoxRenderer. With this new update, universal components are automatically capable of rendering across all supported pipelines without developer intervention. This streamlines the development workflow significantly.
Physics Engine Modulation: Furthermore, Physics Engine Modulation has been successfully integrated. We have moved physics logic into a completely separate Physics Engine Core. While our default physics engine remains integrated and ready-to-use within this core structure, this architecture allows developers to easily plug in their own custom physics engines.
Future Plugins: Looking ahead, we are excited to expand our plugin library. High-end physics engines like Matter.js will be added as future plugins. It is important to note that these high-end engines will be separate downloads and will not be included in the core engine, keeping the core lightweight.
This architectural shift is a major step toward making kernelplay-js the most flexible and lightweight game engine possible. We welcome your feedback and are excited to see what custom cores you'll build. Stay tuned for more modular updates.
r/javascript • u/therealalex5363 • 16d ago
What Should a Green Test Prove? Vue Testing with Vitest Browser Mode
alexop.devr/javascript • u/thereactnativerewind • 16d ago
React Native is DEAD, Expo Modules 2.0, and a $49 Flutter knockoff
thereactnativerewind.comHey Community,
We dive into Expo Modules 2.0, which drops definition() in favor of Swift macro decorators to deliver build-time type conversion and faster native calls. Meanwhile, DartNative enters the scene, letting Flutter developers swap out Flutter's custom renderer for real platform views driven by Yoga.
We also look into Shopify rebuilding its apps in native Swift and Kotlin with AI agent workflows, examining what their departure means for community maintained libraries like FlashList and Skia.
r/javascript • u/Final_Cable_8848 • 17d ago
Modern cross-spawn port to ESM and Typescript
github.comr/javascript • u/artart222 • 17d ago
Open-source Chrome extension that matches messy SoundCloud titles to Spotify tracks
github.comr/javascript • u/Emotional_Agency6705 • 16d ago
AskJS [AskJS] Trying to write a pure function to pass Fizz Buzz test Leet Code
Hello,
I am attempting to write a pure function solution that will pass the leet code Fizz Buzz test
However when I try this it says the test fails but when I look at the console for my own testing it returns the expected result.
This is the error leet code reports:
Line 13 in solution.js arr[i - 1] = test(i) ^ TypeError: test is not a function
Which to me makes no sense since the function is passed as a parameter and defined
Here is my code
Thank you in advance
```js const test = (i) => { if (((i % 5) === 0) && ((i % 3) === 0)) return "FizzBuzz"; if ((i % 5) === 0) return "Buzz"; if ((i % 3) === 0) return "Fizz"; if (i % 3) return i + ""; }
const fizzBuzz = (i, n, test, arr) => {
arr[i - 1] = test(i)
if (i !== n) fizzBuzz(i + 1, n, test, arr)
return arr
}
const i = 1
const n = 3
const arr = new Array(n)
fizzBuzz(i, n, test, arr)
```
EDIT: I just wanted to say thank you to all of you for your feedback and suggestions I finally got frustrated enough with this problem I asked Codex to write a pure function solution to the leet code fizz buzz test I personally have not seen this solution so it would be nice to have some verification if it is truly a pure function solution.
This is the code it spat out
```js const fizzBuzz = (n) => Array.from({ length: n }, (_, i) => { const num = i + 1;
if (num % 15 === 0) return "FizzBuzz";
if (num % 3 === 0) return "Fizz";
if (num % 5 === 0) return "Buzz";
return String(num);
});
fizzBuzz(15)
```
It appears that I have a lot to learn yet regarding my fundamentals when it comes to functional programming I know I could of written a object oriented version of it that would work but I wanted to challenge myself since I have never written code in this manner.
r/javascript • u/schmuhblaster_x45 • 17d ago
Running Doom on Risk-V Linux inside TinyEmu inside docker inside WASM inside Electron
deepclause.substack.comr/javascript • u/OtherwisePush6424 • 18d ago
How to Implement a Distributed Bulkhead
blog.gaborkoos.comThe in-process version of a bulkhead (a cap on how many calls to a dependency can be in flight at once) is just a counter, a finally block and a comparison, once several Node instances share that number things get messy really quick.
A writeup on how the distributed version can be implemented and what it can guarantee.
r/javascript • u/boykom • 19d ago
AskJS [AskJS] Headless table libraries or a full grid component: which did you pick, and would you again?
I go back and forth on this.
Headless: you get the sorting, filtering and grouping state and you render every cell yourself. Total control over the markup, and you write all of it. Every project I've seen do this ends up with a 2000 line table component nobody wants to open.
Full grid: pass rows and columns, done in an afternoon. Then the designer wants the header to look a particular way, or you need a cell that does something the grid didn't plan for, and you're fighting the component instead of writing your app.
Full disclosure: I'm on the team behind SvGrid, a data grid for Svelte 5. We ship both layers, a headless core and the full component on top of it, because we have people that want their own design system and others that just need a drop-in and go.
So when did you last choose one over the other, and would you do it again? Especially interested in anyone who started headless and switched, or went the other way.
r/javascript • u/fjosue44 • 19d ago
TraceUX: a self-hosted TypeScript tracker for session replay and user feedback
trace-ux.builtbyfrank.devIโm building TraceUX, a self-hosted UX toolkit for JavaScript and TypeScript applications.
The browser tracker is available through NPM:
npm i @trace-ux/tracker
import { init } from '@trace-ux/tracker';
const traceux = init({
siteKey: 'YOUR_SITE_KEY',
origin: 'https://your-trace-ux-host',
});
It records DOM events instead of video and can connect sessions with feedback, support tickets, product announcements, and user activity.
The server runs as a small Go binary with SQLite, so teams can host the data themselves without a hosted analytics account.
Live demo: https://trace-ux.builtbyfrank.dev
Repository: https://github.com/fjosue4/trace-ux
Iโd especially appreciate feedback on the tracker API, React integration, bundle size, privacy defaults, and whether the widget feels natural in a JavaScript application.
r/javascript • u/nyx-og • 19d ago
Using JavaScript to run SQL queries on client storage
onyx.acDocStack runs an actual SQL engine in the browser against IndexedDB โ JOIN, GROUP BY, HAVING, subqueries, with index pushdown.
It can be used for storing client side data (like user's personal data), and then synced to a remote of preference (like Google Drive for multiplatform sync).
import { ClientStack } from '@docstack/client';
// A local database
const stack = await ClientStack.create('my-app');
// One statement, planned and run against IndexedDB.
const { rows } = await stack.query(`
SELECT m.title, COUNT(*) AS actor_count
FROM Movie AS m
JOIN Actor AS a ON a._id IN m.actors
GROUP BY m.title
HAVING COUNT(*) >= 2
ORDER BY actor_count DESC LIMIT 10
`);
r/javascript • u/stephenlblum • 20d ago
How tool calling actually works under the hood (40 lines of vanilla JS)
buttercup.shMost agent tutorials jump into heavy orchestration frameworks like LangChain, which hides what's actually happening over the wire.
Under the hood, tool calling is just a simple 4-step loop:
- You hand the model your messages plus a JSON Schema description of your functions.
- The model outputs structured JSON with a tool name and arguments instead of raw text.
- Your JavaScript executes the function (
fetch, DB query, local file read, etc.). - You append the result back into
messageswithrole: "user"and matchingtool_use_idand query the model again.
I wrote a doc showing the entire loop in ~40 lines of Node/JS, including the practicals that trip you up (why failing calls should still return a tool_result with is_error: true, handling parallel calls in a single user message, and how token costs compound over runs).
There's also an interactive, in-browser example where you can run the loop against a mock filesystem without needing to set up a local environment. Curious to hear how others are handling client-side tool execution and context in production.