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

And just like I was hoping for when I started &gap , I can now use it for git diff when viewing local repo changes!

View original message on Discord

Finally settled on a name. Most functionality is complete, the rest is just settings. &personal-web-server

View original message on Discord

Got card rendering working for solitaire (the next game I'm working on as part of my essential &games collection for the jam)

View original message on Discord

More progress on &unimap - search by character name, and go-to-code-point (feature parity with windows' Character Map and BabelMap.)

I'm pleased with the speed at which it searches all 40,000+ char names. Was fully expecting to dive into SIMD intrinsics by now and implement a fast substring search algorithm like this one.

Next things I want to do are

  • load fonts from the user's OS if possible (instead of embedding all of GNU Unifont into the binary lol)
  • drag-and-drop characters onto other windows (Character Map/BabelMap feature parity)
  • clean up/streamline the UI. (only really need 1 search bar that returns both characters and blocks in an intuitive fashion)

1 and 2 will require diving into Win32 finally

View original message on Discord

Speaking of &Cacophontonic, I ditched RayGui in favour of something more custom

View original message on Discord

So far I've been working on packet construction, encryption and parsing for &send-files, so no visual updates yet. Also created a GitHub: https://github.com/DanB91/Send-Files

View original message on Discord

&damian-930 I now am able to full on draw and go back and back to front. Everything is on GPU now using raylib and OpenGL texture updates that raylib doesnt have a call for but i just do it manually via opengl call. Some wrong with the how mouse pos works when transparency is on, i have not done that yet, i just turned it on for the video

View original message on Discord

&simultime Got tabs working! The look is ripped off from sublime text, except that when you have only one tab, the tab bar disappears

View original message on Discord

Shouldn't have procrastinated on the jam, but just figured out how to play an mp4 using MediaFoundation and Direct2D. Gonna be a scramble to the end :grug: &ZVideoTrimmer

View original message on Discord

&pn

Greatly improved scanning performance. Rusts .contains() uses too many SIMD instructions compared to Aho-Corasick: https://www.geeksforgeeks.org/dsa/aho-corasick-algorithm-pattern-searching/.

The Linux kernel can be scanned (on a single core of intel's i7-13700HX) in 36 seconds, yielding 14272 notes. Rust's source code can be scanned in 5 seconds, yielding 11495 notes ⚡ .

View original message on Discord

&Cacophontonic

worked on the peak meter today - This video actually helped me discover a bug where, if you use the "solo" functionality, it works fine for the user but OBS gets muted and it sounds like everything is cut out :thonk: whoops... I guess the peak meter also doesn't distinguish between recording and playback

View original message on Discord

Making diffs more intuitive was the work item for today. VSCode, Azure DevOps, etc. have their own diff algorithm that does some pretty useful stuff to help guide the reader into context. This change to &gap helps to provide even more visibility into inner-diffs by offering a word-based or character-based inner-diff. Sometimes one or the other can help you see changes a little bit better.
First image: word-based inner-diff.
Second image: character-based inner-diff.

View original message on Discord

Update 4/15/2026

Updates:

Fixed a bug where the tab did not show the modified status when pressing keys such as Backspace, Tab, or Delete in the code editor.

Improved the compiler configuration window.

Added support for the Run button to launch the corresponding executable or interpreter based on the configuration.

github: https://github.com/Tonyjw2014/Vcoding/commit/d56dba63684d2d64e59ba1edd9b42d0f4e519aad

&Muze Not much progress, but I got my first "command" working. I have also abstracted moved the MIDI code into the platform layer which solved some bugs I had with hot reloading which is now working as well! I really need to get the sheet music visualizer working...

View original message on Discord

&damian-930 I got drawing and removing list of thing that got drawn working. 500 fps is cause i have some debug testing there that copies images every frame, but if turned off its 1800 frames ))

View original message on Discord

&pn

Found 9220 notes in the linux kernel in 80 seconds.

View original message on Discord

yesterday I barely could touch &scratchvalult besides fixing the linking errors with the CloseWindow overlap. But today I already got all the basic storage-related needs.
I am now saving the copied contents to disk besides the internal in-memory structure, I load everything back up at start, listing, reloading, deletion, and a basic search within the contents of all the saved texts.
Now getting to a basic working version is mostly figuring out the UI and rendering.
I expect to start that later if nothing comes up 🙂

View original message on Discord

I added context window narrowing to &gap . This is very helpful for skipping large common areas in bigger files.

View original message on Discord

My little Minesweeper clone for my &games collection is done enough for today. Next is probably solitaire or something.

View original message on Discord

And just like I was hoping for when I started &gap , I can now use it for git diff when viewing local repo changes!

View original message on Discord

Finally settled on a name. Most functionality is complete, the rest is just settings. &personal-web-server

View original message on Discord

Got card rendering working for solitaire (the next game I'm working on as part of my essential &games collection for the jam)

View original message on Discord

More progress on &unimap - search by character name, and go-to-code-point (feature parity with windows' Character Map and BabelMap.)

I'm pleased with the speed at which it searches all 40,000+ char names. Was fully expecting to dive into SIMD intrinsics by now and implement a fast substring search algorithm like this one.

Next things I want to do are

  • load fonts from the user's OS if possible (instead of embedding all of GNU Unifont into the binary lol)
  • drag-and-drop characters onto other windows (Character Map/BabelMap feature parity)
  • clean up/streamline the UI. (only really need 1 search bar that returns both characters and blocks in an intuitive fashion)

1 and 2 will require diving into Win32 finally

View original message on Discord

Speaking of &Cacophontonic, I ditched RayGui in favour of something more custom

View original message on Discord

So far I've been working on packet construction, encryption and parsing for &send-files, so no visual updates yet. Also created a GitHub: https://github.com/DanB91/Send-Files

View original message on Discord

&damian-930 I now am able to full on draw and go back and back to front. Everything is on GPU now using raylib and OpenGL texture updates that raylib doesnt have a call for but i just do it manually via opengl call. Some wrong with the how mouse pos works when transparency is on, i have not done that yet, i just turned it on for the video

View original message on Discord

&simultime Got tabs working! The look is ripped off from sublime text, except that when you have only one tab, the tab bar disappears

View original message on Discord

Shouldn't have procrastinated on the jam, but just figured out how to play an mp4 using MediaFoundation and Direct2D. Gonna be a scramble to the end :grug: &ZVideoTrimmer

View original message on Discord

I was using this jam to test an idea for a custom renderer based on file type for my text editor. &ViMk is meant to be an “Obsidian” replacement, rendering markdown with vim motions editing, but with "nicer" markdown rendering and support for inline images and objects (because why not lol).

View original message on Discord

&pn

Greatly improved scanning performance. Rusts .contains() uses too many SIMD instructions compared to Aho-Corasick: https://www.geeksforgeeks.org/dsa/aho-corasick-algorithm-pattern-searching/.

The Linux kernel can be scanned (on a single core of intel's i7-13700HX) in 36 seconds, yielding 14272 notes. Rust's source code can be scanned in 5 seconds, yielding 11495 notes ⚡ .

View original message on Discord

&Cacophontonic

worked on the peak meter today - This video actually helped me discover a bug where, if you use the "solo" functionality, it works fine for the user but OBS gets muted and it sounds like everything is cut out :thonk: whoops... I guess the peak meter also doesn't distinguish between recording and playback

View original message on Discord

Making diffs more intuitive was the work item for today. VSCode, Azure DevOps, etc. have their own diff algorithm that does some pretty useful stuff to help guide the reader into context. This change to &gap helps to provide even more visibility into inner-diffs by offering a word-based or character-based inner-diff. Sometimes one or the other can help you see changes a little bit better.
First image: word-based inner-diff.
Second image: character-based inner-diff.

View original message on Discord

Update 4/15/2026

Updates:

Fixed a bug where the tab did not show the modified status when pressing keys such as Backspace, Tab, or Delete in the code editor.

Improved the compiler configuration window.

Added support for the Run button to launch the corresponding executable or interpreter based on the configuration.

github: https://github.com/Tonyjw2014/Vcoding/commit/d56dba63684d2d64e59ba1edd9b42d0f4e519aad

&Muze Not much progress, but I got my first "command" working. I have also abstracted moved the MIDI code into the platform layer which solved some bugs I had with hot reloading which is now working as well! I really need to get the sheet music visualizer working...

View original message on Discord

&damian-930 I got drawing and removing list of thing that got drawn working. 500 fps is cause i have some debug testing there that copies images every frame, but if turned off its 1800 frames ))

View original message on Discord

&pn

Found 9220 notes in the linux kernel in 80 seconds.

View original message on Discord

yesterday I barely could touch &scratchvalult besides fixing the linking errors with the CloseWindow overlap. But today I already got all the basic storage-related needs.
I am now saving the copied contents to disk besides the internal in-memory structure, I load everything back up at start, listing, reloading, deletion, and a basic search within the contents of all the saved texts.
Now getting to a basic working version is mostly figuring out the UI and rendering.
I expect to start that later if nothing comes up 🙂

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