

For the layout, KLE is the old standby and is used by several other tools. You can then import THAT into a plate generator, the one HERE by ai03 (fairly well known designer in the small world of keyboard people) is probably the best and most reliable. That will let you generate DXF files for your cutter. At it’s simplest, a switch plate, a bottom plate, and some standard brass standoffs are enough to make the physical structure. Once you have the dimensions, though, it’s not TOO hard to design a 3D printed case or a more sophisticated set of slices to go on your laser (LibreCAD, Inkscape, or even direct in Lightburn IIRC), and acrylic stack cases are very much a thing, though not so much in vogue as commercial products anymore. The board in this post started as a completely Masonite build, because my little 5W diode could cut it reasonably well. It was only in the last week or so that I took it apart and replaced the laser-cut standoff spacers with a 3D printed version with a sidewall to make it look slightly more like a finished keyboard.
For wiring, I sort of play in the kiddie pool. Most of my boards are hand-wires, and there as many tweaks to the formula as there are makers, but THIS older set of posts from Matt3o (another well known designer) is as good as any for the basics. I find Raspberry Pi Picos and other RP2040 clones easier to work with, but YMMV and the concepts are the same. I have done two PCBs. Both of them are just traces and through-holes. The first one just has a spot to run wire to a Pi Pico or other dev board. The other adds a few spots for indicator LEDs and actually crams in a spot for Pi Pico compatible board, which means it’s easier to keep my firmware on hand. For firmware, KMK is in interpreted python and is very easy to set up, but QMK and its tweaked versions for the VIA and VIAL graphical remapping software are more sophisticated and extensible.
I had to learn KiCAD well enough to muddle through (and the second PCB does have a few errors, but not enough that I had to scrap them, thank goodness). More clever people than I, actually design proper PCBs with the microcontroller and necessary components included during fabrication, and there are custom keyboards all over github with KiCAD files to look through (the “GH60” is the classic example). There are even plugins to take a schematic view in KiCAD (the line diagrams of circuits) and populate the actual physically-representative footprints based on KLE data. There are also customized libraries of keyboard-switch footprints that are a little nicer than the ones built into KiCAD (though there ARE usable ones built in).
Yup. I also liked this, but I’m trying hard not to just quote the whole thing back, because it’s all good.