Advertisement · 728 × 90

Posts by Ben Visness

As a specific counterpoint to one of your assertions, if highly-composed software actually worked like you say, bundle sizes wouldn't be such a problem on the web today. But in practice, there are massive amounts of duplication and bloat in a typical node_modules, which static analysis can't touch.

2 days ago 0 0 1 0

No specific language or tech stack requirement, but we encourage people to avoid big frameworks, since they tend to obscure what the software actually needs to do. Using AI to generate code is strictly forbidden though.

2 days ago 0 0 0 0
Micro-libraries need to die already Somehow people are still putting tiny libraries on npm, and it really needs to stop.

b) npm is a dependency nightmare with increasingly negative ramifications. Bundle sizes are massive, supply chain attacks are rampant, and meanwhile standard APIs in the browser go unused. No one should be using thousands of tiny libraries written by strangers. bvisness.me/microlibrari...

2 days ago 0 0 1 0

a) There's literally no difference at runtime between using a package you got from npm vs. a package you vendored or wrote yourself. Because the language is the same on either side, there are no surprising costs at the boundaries, and static analysis (e.g. TS and bundlers) can work at full power.

2 days ago 0 0 1 0

npm is a poor comparison because a) npm uses the same language for all its packages, and b) npm is a plague on the software industry

2 days ago 0 0 2 0

Personally I strongly do NOT want the small-pieces world. If you build apps out of tons of tiny shared-nothing pieces, you inherit all kinds of microservice problems at the local development level, which is peak stupid. But, I do want a world where Wasm can actually call things on the host.

2 days ago 2 0 1 0
Preview
Handmade Essentials Jam Build simple programs you would use every day, from scratch, by hand. April 13 - 19, 2026.

Next week we are hosting the Handmade Essentials Jam: a one-week jam where we build essential software from scratch, by hand.

If you like building simple software, or want to get better at coding without AI, then sign up and join us next week:

handmade.network/jam/essentials

2 days ago 1 1 1 0
Advertisement
Preview
Why is WebAssembly a second-class language on the web? – Mozilla Hacks - the Web developer blog This post is an expanded version of a presentation I gave at the recent WebAssembly CG meeting in Munich. WebAssembly has come a long way since its first release in 2017. The 1.0 version of WebAssembl...

We at Mozilla feel that WebAssembly has been a second-class citizen on the web for long enough. You shouldn't have to go through JS to do everything.

This is probably a lot of what I will be focusing on for work in 2026!

hacks.mozilla.org/2026/02/maki...

1 month ago 12 3 0 1

That’s part of it. See the console example near the end. If you work through the details of what such a thing would mean, you find that you need some kind of ABI to define the low-level details of each call, and then some kind of bindings to use it. That’s a big part of what components do today.

1 month ago 1 0 1 0

No, it is a bespoke tool and the layout algorithm is specifically designed for control flow graphs. There is no description language or whatever.

5 months ago 3 0 0 0
Post image

Inspiring words from the Handmade Network Discord today

9 months ago 2 0 0 0
Post image

the one time git asks for my permission first is the one time it absolutely does not matter

9 months ago 2 0 0 0
Buongiorno: Detailed Writeup Buongiorno attempts to map out mDNS and DNS-SD activity by inspecting the raw stream of mDNS packe…

A larger write-up on the project can be found here, with background info about mDNS and DNS-SD: handmade.network/p/688/buongi...

9 months ago 0 0 0 0
Post image

Oh also I forgot to post my jam project here on Bluesky - here's Buongiorno, my tool for mapping out mDNS and DNS-SD services. It captures mDNS packets to show a graph of services being requested and advertised, e.g. printers, AirPlay, Handoff, and more.

9 months ago 2 0 1 0
Preview
X-Ray Jam A jam to find out how software works on the inside. June 9 - 15 on the Handmade Network.

The X-Ray Jam is complete! I had a great time and we have 10 lovely submissions you can look through: handmade.network/jam/x-ray-2025

We're planning a recap live show in the near future, so stay tuned for that.

9 months ago 0 0 0 0
Post image

Behold! A list of mDNS services in my house. (This is basically just the output of `avahi-browse`, so nothing too novel yet.)

9 months ago 1 0 0 0
The DNS-SD spec with the following highlighted: “a web server typically has multiple pages”

The DNS-SD spec with the following highlighted: “a web server typically has multiple pages”

The things you learn from reading specs

9 months ago 0 0 0 0
Advertisement
Highlighted printouts of mDNS-related articles and specs.

Highlighted printouts of mDNS-related articles and specs.

The X-Ray Jam is underway (handmade.network/jam/x-ray-2025) and I am exploring mDNS.

First step: testing if mDNS works on my printer. It does.

10 months ago 0 0 0 0

I'm tackling mDNS, hopefully making a tool that maps out the state of all my network devices so I can see why devices only seem to show up like 60% of the time 😃

10 months ago 1 0 0 0
Preview
X-Ray Jam A jam to find out how software works on the inside. June 9 - 15 on the Handmade Network.

The X-Ray Jam is just a week away! If you are interested in tools that dig into software internals then you should participate or at least follow along.

handmade.network/jam/x-ray-2025

10 months ago 1 0 1 0

This is for a WASM record/replay tool I'm building for work. It instruments arbitrary WASM modules to record specific function calls to a log, then can recreate the module state to replay them.

10 months ago 2 0 0 0
"Very stupid RLE", where runs of zeroes are collapsed but individual letters are spaced out by four bytes each

"Very stupid RLE", where runs of zeroes are collapsed but individual letters are spaced out by four bytes each

"Slightly smarter RLE", where long runs of unique characters are contiguous

"Slightly smarter RLE", where long runs of unique characters are contiguous

I have started to go down the compression rabbit hole. The compressor and decompressor are handwritten WASM.

Uncompressed: 52MB
Very stupid RLE: 182KB
Slightly smarter RLE: 65KB

10 months ago 3 1 1 0
Tweet from Fabian Giesen (@rygorous):

look, I'm sorry, but the rule is simple:
if you made something 2x faster, you might have done something smart
if you made something 100x faster, you definitely just stopped doing something stupid

Tweet from Fabian Giesen (@rygorous): look, I'm sorry, but the rule is simple: if you made something 2x faster, you might have done something smart if you made something 100x faster, you definitely just stopped doing something stupid

11 months ago 4 0 0 0
Spreadsheet showing results from a Flutter benchmark, showcasing a 15%+ performance improvement.

Spreadsheet showing results from a Flutter benchmark, showcasing a 15%+ performance improvement.

Sometimes you spend weeks on a performance optimization to get 0.5% faster. Other times you spend a day tweaking your GC code and get 15%+ faster.

11 months ago 0 0 1 0
Preview
Unwind

You can subscribe on podcast platforms at handmade.network/podcast/, and video versions are available on both YouTube and Spotify. I'm so excited to be doing this again 😄

1 year ago 0 0 0 0
Advertisement
How does a web dev become a CPU engineer? // Unwind Ep. 8
How does a web dev become a CPU engineer? // Unwind Ep. 8 YouTube video by Handmade Network

We're doing a Handmade podcast again!

Our first episode of 2025 is an interview with aolo2, a web dev turned CPU engineer, about several apps he has made from scratch: a collaborative whiteboard, a Handmade Slack alternative, and a CPU trace viewer.

www.youtube.com/watch?v=b74I...

1 year ago 2 0 1 0
Preview
File Pilot - Next-gen file explorer File Pilot is a file explorer built from scratch for light-speed performance, with a modern and robust interface.

A file explorer called File Pilot just released in open beta yesterday: filepilot.tech

It is so insanely fast that it makes you question how all other software is developed. The Handmade community does good work.

1 year ago 9 1 0 0

The point of my post was that optimizations to Memory64 will NEVER be able to fully eliminate bounds checks the same way we can for 32-bit wasm.

1 year ago 1 0 0 0
Preview
Is Memory64 actually worth using? After many long years, the Memory64 proposal for WebAssembly has finally been released in both Firefox 134 and Chrome 133. In short, this proposal adds 64-bit pointers to WebAssembly.

After working hard to get 64-bit WebAssembly released in browsers, I would now like to discourage most people from using it 😛

(My first post on the SpiderMonkey website btw, which is a fun milestone)

spidermonkey.dev/blog/2025/01...

1 year ago 15 5 1 2