Advertisement · 728 × 90

Posts by Eric Clemmons, CEO of JavaScript Fatigue

Preview
Playwright MCP Deploy a Playwright MCP server that uses Browser Rendering to provide browser automation capabilities to your agents.

It seems like Cloudflare Agents SDK's `addMcpServer` only supports remote servers, not bindings.

So having something like developers.cloudflare.com/browser-rend... has to be separately deployed vs. part of an existing Agent

6 months ago 2 0 0 0

Someone who gives a damn about others would be a welcome change

6 months ago 3 0 0 0
Preview
GitHub - publint/publint: Lint packaging errors Lint packaging errors. Contribute to publint/publint development by creating an account on GitHub.

Ooo `tsdown --publint` builds and lints my packages:

github.com/publint/publ...

It could some missing types I wasn't generating!

6 months ago 12 0 0 0
Preview
GitHub - bahmutov/start-server-and-test: Starts server, waits for URL, then runs test command; when the tests end, shuts down server Starts server, waits for URL, then runs test command; when the tests end, shuts down server - bahmutov/start-server-and-test

github.com/bahmutov/sta... from is *so good* in CI 😍

{
"scripts": {
"start": "npm start",
"test": "mocha e2e-spec.js",
"ci": "server-test 8080"
}
}

7 months ago 3 0 0 0

better-auth is so good

I wanted to support my old API keys, so I’m just making a new one on the fly when validating it.

No need to do a DB migration or anything. Seamless.

7 months ago 2 0 0 0

Not only is Sam’s post beautifully illustrated, it’s the little details too

7 months ago 5 0 1 0
Video

✨ Big O ✨

Let me take you on a visual introduction to what big O notation is in my new blog post: samwho.dev/big-o.

With big O notation you can better understand how algorithms will perform in practice, finding orders of magnitude improvements often with very simple changes to your code.

7 months ago 416 105 29 21

I dig that style a lot!

7 months ago 2 0 1 0

All of my projects are wrapped in www.jetify.com/devbox now

Since everything I do has 1+ web servers running, I love Caddy and process-compose as the TUI

7 months ago 2 0 0 0
Advertisement
2025-07-31, Version 22.18.0 'Jod' (LTS), @aduh95
Notable Changes
Type stripping is enabled by default
Node.js will be able to execute TypeScript files without additional configuration:

$ echo 'const foo: string = "World"; console.log(`Hello ${foo}!`);' > file.ts
$ node file.ts
Hello World!

2025-07-31, Version 22.18.0 'Jod' (LTS), @aduh95 Notable Changes Type stripping is enabled by default Node.js will be able to execute TypeScript files without additional configuration: $ echo 'const foo: string = "World"; console.log(`Hello ${foo}!`);' > file.ts $ node file.ts Hello World!

It's easy to miss a key feature of Node's TypeScript support that was released on Friday: it's zero config 💥

Meaning you don't need to put anything in package.json. Strictly speaking you don't even need a tsconfig to run the code.

nodejs.org/en/blog/rele...

8 months ago 85 16 6 1
Preview
height - CSS | MDN The height CSS property specifies the height of an element. By default, the property defines the height of the content area. If box-sizing is set to border-box, however, it instead determines the heig...

Did you know you can do `height: stretch` now in CSS? Works for `width` too. /via @patrickbrosset.com

developer.mozilla.org/en-US/docs/W...

8 months ago 149 31 14 4
Post image

Afternoon reset

8 months ago 0 0 0 0
Post image

Wife took a photo of me this morning

8 months ago 2 0 0 0
Preview
Stop Re-Rendering — TanStack DB, the Embedded Client Database for TanStack Query | TanStack Blog Your React dashboard shouldn't grind to a halt just because one TODO turns from ☐ to ☑. Yet every optimistic update still kicks off a cascade of re-renders, filters, useMemos and spinner flashes. If y...

TanStack DB is now in BETA!

We’ve been working on TanStack DB, an embedded, reactive client database for TanStack Query, and are proud to announce today that with the 0.1 release that it's now in BETA!

tanstack.com/blog/tanstac...

8 months ago 84 9 2 2

Huh.

I wonder how this hasn’t been a pain point.

I understand it intellectually from years of DOM scripting, of course.

As someone who can’t help but cut myself on any bleeding edge, I’m wondering what experience I haven’t had now…

8 months ago 0 0 0 0

Ah. My thought was that JS had equivalents, removing the need for their version in the DOM.

- Comments are JS comments
- Listeners are onClick
- Fragments/Templates are components

I can’t remember properties vs attributes. Is selectedIndex an example of that?

8 months ago 0 0 1 0

Say more about expressive enough?

8 months ago 1 0 1 0
Advertisement

Literally smiling by how cool this is

8 months ago 1 0 0 0

🌳 Keep what works. Cut off the tendrils that don’t. 🪾

The “facade pattern” is it’s the most economical way to “throw away the prototype” and build the product the way it should be.

(Also heard it as “strangler fig pattern”)

8 months ago 1 0 0 0
Video

🔥 My friends at DMNO have a new devtool: varlock.

It’s a drop-in replacement for dotenv, and adds a bunch of cool stuff like validation and type safety. It stores the secrets themselves in password managers or encrypted vaults.

The landing page also has a very cool RPG vibe 😄
varlock.dev

8 months ago 81 9 5 2

I got 10 questions in and ready to burn it all down 🤬

8 months ago 1 0 0 0

The fun of being early-stage CTO is getting the company on the right engineering rails.

There's a clarifying tension between what's wanted vs. what's needed, especially depending on the time horizon.

A month ago, customer success.
Last week, bug bashing.
This week, QA.
Next, 🏖️

9 months ago 1 0 0 0
Post image

A bunch of Cloudflare permission gotchas, but I was able to hack the Dashboard's network calls into alchemy.run 🧙

```
await AutoRag("autorag", {
aiGateway: GATEWAY,
bucket: BUCKET,
name: `autorag-${app.stage}`
});
```

🎉

9 months ago 2 0 0 0

I’m a fan.

Ready-to-go components that’s already on Tailwind, so the underlying CSS vars and escape hatches are all there.

Terse by default.
Utilities when needed.

9 months ago 1 0 0 0

Dude, could you have imagined this only a few years ago??

This is a crazy good accomplishment! So professional, and the quality is top notch, too!

9 months ago 1 0 1 0
Local prototype of bookmarks actually working

Local prototype of bookmarks actually working

Inngest dashboard

Inngest dashboard

I started from 0️⃣ tonight with Inngest and finished with a working bookmark tool! 😍

🏎️ Powered by Cloudflare {AI, Browser, D1, KV, R2}

9 months ago 1 0 0 0
Advertisement
Preview
🚀 Feature Request:RPC Support for Durable Objects in `wrangler dev` · Issue #5918 · cloudflare/workers-sdk Describe the solution When binding a durable object using RPC that was defined in a different worker, it fails with: Cannot access `MyDurableObject#myMethod` as Durable Object RPC is not yet suppor...

I think that's exactly it – I'm always cutting myself on the edge before others do.

github.com/cloudflare/w... still fails as of last night.

github.com/cloudflare/w... still seems to be an issue, too

Admittedly, it could be the jello effect from alchemy.run/concepts/dev/ causing wiggle

9 months ago 1 0 0 0

🦸 Being new is a super power - you can see what's invisible to everyone who's been there for a while 🙈

9 months ago 4 0 0 0
Preview
Realtime - Inngest Documentation Learn how to use realtime to stream data from workflows to your users.

Welp. Maybe Workers are great, but not when trying to use them inside of Astro (or even locally) 🤷

You know what *is* great? Inngest.

I wanted DO for WS & persistence, but It's probably easier to just do www.inngest.com/docs/feature...

🔨 💅

9 months ago 0 0 0 0

It totally makes sense that local DX strongly determines what solutions even make it into production.

If you can’t prove something works in a local greenfield environment, good luck 👍

(This tweet sponsored by miniflare ☹️)

9 months ago 5 0 1 0