The Handmade Essentials Jam is currently underway! More info

We make software by hand.

The Handmade Network is a community of programmers inspired by Handmade Hero. We love programming, we like to reinvent the wheel, and we like understanding how our software works at a low level.

In a software industry dominated by bloat, waste, and slop, we go in the opposite direction. We care about our craft, we care about how computers actually work, and we take pride in writing truly high quality software. After all, someone needs to show the rest of the software industry what computers are capable of.

Handmade Network Expo
June 6, 2026
Get your ticket
Featured
Recent
News

Parallax Occlusion Mapping with Silhouette on columns with proper curvature:

View original message on Discord

&overseer keeps history for individual processes.

View original message on Discord

&robotype You can now pick between multiple collections. It also saves your personal best time on each sample

View original message on Discord

At first I managed to get really fast scrubbing, but then I realized that was because only key frames were being previewed by IMFSourceReader_SetCurrentPosition. Things slowed significantly once I started decoding all the frames around the cursor. It made me realize why scrubbing is generally slow in most video players, frames need to be decoded in real time when you seek, as all the frame information isn't actually present in the video file. Mainly key frames and diffs.
But that made me think of a slight optimization, outside of caching all frames, you could just display key frames while scrubbing quickly, then decode all frames if scrubbing really slow. Practically, human speed of mouse cursor movement should be enough information to do this well. If I dont manage to actually finish the trimming part (handling video using the MediaFoundation api is a bit trickier than I realized), I'll try implementing the seek optimization. &ZVideoTrimmer

View original message on Discord

&fubar had sluggish start. I had less time than I thought during the week, and more than I thought to piece together about the macOS ecosystem.
Yesterday the full day I was reading about darwin history, frameworks, sandboxing and what scraps I could find about the window server with some pointers from #apple-dev .
But heeey, the fuBar got to hello world state!
I got it compiling and running from both Xcode and VSCode and terminal aaaand my sunday is just starting 😁

View original message on Discord

&send-files progress:

  • Got copying and pasting contact information working (attached)
  • Wrote a test that will reflect the flow for sending a "file send request" and "accept file send request" packets

Yea... there's no way I am getting anything remotely close to actually transferring files by tomorrow lol

View original message on Discord

The most important feature has been implemented. (&games)

View original message on Discord

I underestimated the amount of work I had to do, so unfortunately it is missing some core features such as

  1. text edit widget to enter program name
  2. edit hotkey entries
  3. persistent app data for hotkey entries
  4. conflict detection and resolution
  5. good ui for the modal box to add hotkeys 😄

But I do have the basic functionality for adding hotkey entries and launching processes. This is probably as much as I can do in a week but I'll try to finish the project in the next couple of weeks or so.

&bind-essentials-jam

View original message on Discord

Haven't shared in a bit since I've been doing a lot of background work that isn't visual, but I'm finally getting my UI all put together. &overseer finally has a functioning process list.

View original message on Discord

Finally some progress on drag and drop. Among the bugs I encountered: UI actions triggering on multiple items per frame, UI actions persisting across too many frames, clearing out UI state too early in the frame... (&games)

View original message on Discord

Finally got v1.0 of &pn working for the jam. I won't have time to work on it tomorrow, but here is a small demo.

View original message on Discord

&fillet

I optimized the rendering of frames to the window, which I hope is noticeable in this video

View original message on Discord

&pn

Made a simple TUI from scratch for projects that have more than 100 notes. It's kinda hacked together, but works well enough to be usable.

View original message on Discord

&fillet

Progress so far

I recorded the window to get this footage, which I then put through FILLET afterwards, to get the video you see

There's a bunch of video bitrate and other optimizations to make, and the app isn't very pretty yet
But you drop a video in and press PLAY to save the trimmed version.
I want to at least let the user select a start frame before the jam is over. Hopefully also an end frame that is less than 10 MB, in case the user wants to trim like that

My time has so far been spent trying to understand ffmpeg and video decoding and encoding. I made a lot of mistakes and had a lot of retries

https://github.com/mlabbe/nativefiledialog - has worked nicely to deal with the save file dialog

View original message on Discord

&prodex I've decided to doodle up a small icon for the application and also added tray behavior. We now seemlessly go into a nice tray. Downside only supports a single tray item for the time being. UI abstraction still under work.

View original message on Discord

&damian-930 now i have kind of what i want to have. Need more shourtcuts and 2 more pens and some little details like pen icon and stuff. UI is dog shit. But overall, this is kind of a demo.

View original message on Discord

Here's the state of &digitalpaper after the first few days. Most of the work so far has been fixing things in my half baked UI library, but I think I'm finally at the point where I can focus on adding features to the text editor.

View original message on Discord

&robotype I have made a thing :) Very unfinished at the moment.

View original message on Discord

Parallax Occlusion Mapping with Silhouette on columns with proper curvature:

View original message on Discord

&overseer keeps history for individual processes.

View original message on Discord

&robotype You can now pick between multiple collections. It also saves your personal best time on each sample

View original message on Discord

At first I managed to get really fast scrubbing, but then I realized that was because only key frames were being previewed by IMFSourceReader_SetCurrentPosition. Things slowed significantly once I started decoding all the frames around the cursor. It made me realize why scrubbing is generally slow in most video players, frames need to be decoded in real time when you seek, as all the frame information isn't actually present in the video file. Mainly key frames and diffs.
But that made me think of a slight optimization, outside of caching all frames, you could just display key frames while scrubbing quickly, then decode all frames if scrubbing really slow. Practically, human speed of mouse cursor movement should be enough information to do this well. If I dont manage to actually finish the trimming part (handling video using the MediaFoundation api is a bit trickier than I realized), I'll try implementing the seek optimization. &ZVideoTrimmer

View original message on Discord

&fubar had sluggish start. I had less time than I thought during the week, and more than I thought to piece together about the macOS ecosystem.
Yesterday the full day I was reading about darwin history, frameworks, sandboxing and what scraps I could find about the window server with some pointers from #apple-dev .
But heeey, the fuBar got to hello world state!
I got it compiling and running from both Xcode and VSCode and terminal aaaand my sunday is just starting 😁

View original message on Discord

&send-files progress:

  • Got copying and pasting contact information working (attached)
  • Wrote a test that will reflect the flow for sending a "file send request" and "accept file send request" packets

Yea... there's no way I am getting anything remotely close to actually transferring files by tomorrow lol

View original message on Discord

The most important feature has been implemented. (&games)

View original message on Discord

I underestimated the amount of work I had to do, so unfortunately it is missing some core features such as

  1. text edit widget to enter program name
  2. edit hotkey entries
  3. persistent app data for hotkey entries
  4. conflict detection and resolution
  5. good ui for the modal box to add hotkeys 😄

But I do have the basic functionality for adding hotkey entries and launching processes. This is probably as much as I can do in a week but I'll try to finish the project in the next couple of weeks or so.

&bind-essentials-jam

View original message on Discord

Haven't shared in a bit since I've been doing a lot of background work that isn't visual, but I'm finally getting my UI all put together. &overseer finally has a functioning process list.

View original message on Discord

Finally some progress on drag and drop. Among the bugs I encountered: UI actions triggering on multiple items per frame, UI actions persisting across too many frames, clearing out UI state too early in the frame... (&games)

View original message on Discord

Finally got v1.0 of &pn working for the jam. I won't have time to work on it tomorrow, but here is a small demo.

View original message on Discord

heya! i don't post a lot here since most other people have wayyy cooler stuff to show off than i do but god damn that factorio background is SO COOL

View original message on Discord

&fillet

I optimized the rendering of frames to the window, which I hope is noticeable in this video

View original message on Discord

&pn

Made a simple TUI from scratch for projects that have more than 100 notes. It's kinda hacked together, but works well enough to be usable.

View original message on Discord

&fillet

Progress so far

I recorded the window to get this footage, which I then put through FILLET afterwards, to get the video you see

There's a bunch of video bitrate and other optimizations to make, and the app isn't very pretty yet
But you drop a video in and press PLAY to save the trimmed version.
I want to at least let the user select a start frame before the jam is over. Hopefully also an end frame that is less than 10 MB, in case the user wants to trim like that

My time has so far been spent trying to understand ffmpeg and video decoding and encoding. I made a lot of mistakes and had a lot of retries

https://github.com/mlabbe/nativefiledialog - has worked nicely to deal with the save file dialog

View original message on Discord

&prodex I've decided to doodle up a small icon for the application and also added tray behavior. We now seemlessly go into a nice tray. Downside only supports a single tray item for the time being. UI abstraction still under work.

View original message on Discord

&damian-930 now i have kind of what i want to have. Need more shourtcuts and 2 more pens and some little details like pen icon and stuff. UI is dog shit. But overall, this is kind of a demo.

View original message on Discord

Here's the state of &digitalpaper after the first few days. Most of the work so far has been fixing things in my half baked UI library, but I think I'm finally at the point where I can focus on adding features to the text editor.

View original message on Discord

We’re pleased to announce that ticket sales for the Handmade Network Expo are now open!

The Handmade Network Expo is our first-ever in-person event. We didn’t want to just run another “conference”; after all the years of Abner running Handmade Seattle (and our subsequent split), we weren’t interested in having a typical lineup of tech talks. Our favorite part was always the demos: real Handmade software made by members of the Handmade community. So in that spirit, we decided to make an event that was all demos, all the time.

You can find all the details on the event page, but the short version is that it’s one day in the heart of Vancouver, with a flexible schedule full of small demos, and plenty of opportunities to show off your own work, learn from others, experiment with new ideas, and generally celebrate Handmade software. Tickets are just $100, but space is limited. If

TL;DR:

  • The first-ever Handmade Network Expo will take place on June 6, 2026
  • Join us in re-watching Handmade Hero! (starting February 7, 2026)
  • A few thoughts about Handmade's position in the industry

We are very excited to announce the Handmade Network’s first-ever in-person event: The Handmade Network Expo!

2025 was a quiet year for us where we focused on the fundamentals of the community: jams, projects, a healthy community, and interesting discussions. But we love seeing other people in person, and were sad that we didn’t have the opportunity last year. So we decided it was time to bring people together again, and with our renewed focus on real, tangible Handmade software, a day of demos seems like the perfect fit.

So: Join us in Vancouver, BC on June 6, 2026, for a day packed with demos, discussion, socializing, and celebrating the achievements of the talented programmers of the Handmade community!

(By the way, don't miss more news at t

Hello Handmade Network, and happy new year! 2025 was a relatively quiet year for us where we focused on just running our jams and building relationships across the Handmade community. But we’ve got lots of plans for 2026 and we’ve already been at work kicking them off!

TL;DR:

  • We are finally launching the Handmade Software Foundation and using it to support the development of more Handmade software
  • We’re planning an in-person gathering for this spring, more details forthcoming
  • We’ll be doing two jams as usual, dates TBD based on other events

Launching the Handmade Software Foundation

A few years ago we announced that we were creating a nonprofit to support the development of Handmade software. Well, it took some time, but I am pleased to announce that the Handmade Software Foundation is now officially a 501(c)(6) nonprofit corporation.

What does this mean? It means we are a nonprofit under the category carved out for business leagues, chambers of commer

Happy fall to everyone in Handmade! I hope you had a wonderful summer, and that you spent the perfect amount of your summer writing amazing Handmade software. Ideally you were actually outside enjoying the sun and the air while doing this, and ideally you climbed a mountain or jumped in a lake afterward—but if this is wishful thinking, then I hope you at least have some cool software to show for it.

Fall is a wonderful season for Handmade, because it means that we get to do another Wheel Reinvention Jam. And this is our fifth annual WRJ!

Wheel Reinvention Jam, September 22 - 28, 2025

For me, the Wheel Reinvention Jam is one of the most important things we do as a community, because it reminds us that wheels do need to be reinvented, and that even the most ambitious projects need to start somewhere. I wrote this on the jam page, but whe

It's June 9, and that means that the X-Ray Jam has officially begun!

image.png

Participants have one week to make a project that exposes the inner workings of software. If this is your first time hearing about it, it's not too late to participate! Head over to the jam page to find more information about the theme, submission instructions, and inspiration to get you started.

After the jam, we plan to do another recap show like usual. The show is tentatively scheduled for Sunday, June 22, one week after the conclusion of the jam, but stay tuned for official confirmation.

We look forward to seeing all the updates this week!

-Ben

The official page for the X-Ray Jam is now online! Check it out, invite your friends, and join us on June 9 to dig into how software works.

image.png

The premise of the X-Ray Jam is to point an X-ray at software and see how it works "on the inside". It's a riff on the Visibility topic from previous years and a refinement of what made that topic interesting.

See, the original concept of "visibility" was not about "visualization"—the point was to make visible the invisible workings of the computer. To "visibilize" it, not necessarily "visualize" it. Obviously I love what the community chose to submit for those jams, but they admittedly did not stick to that topic very well. Even my own submission to the first Visibility Jam was a tool for automatically tracing a network, not really a tool to "make the pac

Hello Handmade! 2025 is moving right along, and Handmade projects along with them. But first:

Introducing the X-Ray Jam!

We are doing two jams this year, and the first is a new jam we’re calling the X-Ray Jam. This is a riff on the “visibility” topic from years past that I’m very excited about.

In short: point an X-ray at your software! The purpose of the X-Ray Jam is to explore our systems and learn more about how they work on the inside. It combines the best parts of the Visibility and Learning jams into one. Here’s the details:

  • When: June 9-15, 2025
  • Topic: X-ray some program and figure out what's happening inside.
  • You submit: A program or tool, like previous years, or a blog post, like in the Learning Jam.

For example, maybe you'd build a program to record and replay all the window messages received by your program. Or you'd investigate why the Windows 11 right-click menu is so slow to open. (What is it doing?!) Or perhaps you coul

Hello Handmade community! I hope your 2025 is going brilliantly so far. I have a few key updates for you to kick off the year.

Unwind is back!

I am pleased to announce that, after a bit of a hiatus, our interview show Unwind is back. Our latest episode is an interview with Alex (aolo2), a web developer turned CPU engineer whose projects are a constant inspiration. We discuss the creation of his collaborative whiteboarding app, the Slack replacement he made for a previous job, and his latest project, a lightning-fast CPU trace viewer. You can watch the episode on YouTube.

unwind_aolo2_screenshot.jpg

For this re-launch of Unwind, we’ve changed the format of the show from live to pre-recorded interviews. It’s basically a podcast now instead of a live show, and we hope this will h

I regret to announce that the Handmade Network and Handmade Software Foundation will no longer be working with Abner Coimbre and Handmade Cities going forward.

This is obviously not a decision we made lightly. Since Handmade Seattle concluded just over two months ago, we have been attempting to come to an agreement that would allow us to continue working together. Unfortunately, it has become clear that Abner’s vision for Handmade has diverged from ours, and despite our best efforts, we have been unable to reconcile our differences.

This means that the Handmade Network will no longer support, promote, or endorse any Handmade Cities conferences or meetups. We disclaim all affiliation with Handmade Cities going forward. Community members are of course still welcome to attend Abner’s events if they wish, but with the understanding that we have zero influence over any content, logistics, or attendee experience.

How did we get here?

I realize this announcement may come as

This post has been co-authored by Abner Coimbre and Ben Visness.


On November 17, 2014, Casey Muratori went live with the first episode of Handmade Hero. The show was immediately electrifying: a game industry veteran sharing his knowledge with no coddling and no compromises. But Handmade Hero gave us more than just technical knowledge—it gave us an ethos for how to program.

10 years later, it’s clear that Handmade Hero was more than just a show—it started a movement. The Handmade community has grown to encompass thousands of people sharing their knowledge on Discord, attending conferences and meetups, shipping apps, and working to fix the mess that is modern software. In a world where most programming communities are built around a particular language or paradigm, the Handmade community is an anomaly, a place where brilliant programmers of all disciplines gather to help each other make truly great software.

This past July, we