Firmware & software
How keys are remapped, with macros and layers.
Firmware is the software on the controller that turns key presses into characters, layers and macros. The choice is tightly coupled to your controller and connectivity: QMK (with the VIA/Vial GUIs) rules the wired world; ZMK is the wireless standard; KMK is a beginner-friendly Python option. For a programmer friend, QMK + Vial (wired) or ZMK (wireless) hits the sweet spot of power and tooling.
The powerful, open-source standard for wired boards. Configure in C and flash from source — enormous feature set, used almost everywhere. Best paired with VIA or Vial for live editing.
GUI layers on top of QMK that let you remap keys, layers and macros live with no recompiling. Vial is the more open, no-cloud successor. The friendliest way to live with a QMK board.
The modern firmware built for wireless (BLE) on nRF chips. Excellent power management and the standard for wireless ergo boards. Config lives in plain-text files in a Git repo — perfect for a developer.
Firmware written in CircuitPython. The most beginner-friendly to hack on — edit a Python file on a USB drive, no toolchain. Great for tinkering, on RP2040-class chips.
Every choice you'll see for this decision in the builder.
All of QMK's power, plus Vial's GUI for changing keys, layers and macros instantly without recompiling or any cloud account. A superb default for wired boards.
- Live remapping, no recompile
- Full QMK feature set
- Open-source, no cloud
- Wired (QMK) focused
- Board must support Vial
QMK paired with VIA's point-and-click configurator. Hugely popular and supported by a long list of boards.
- Easy live remapping
- Very widely supported
- Big community
- Board must be VIA-enabled
- Wired-focused
For the tinkerer who wants every feature and total control — write your keymap in C and flash it. The programmer's playground.
- Every QMK feature
- Total control
- Version-controllable
- Recompile to change keys
- Steeper setup
Built for Bluetooth on nRF chips, with great battery management. Keymaps live in plain-text files in a GitHub repo that builds your firmware automatically — a dream for a developer.
- Best-in-class for wireless
- Git-based config + CI build
- Excellent power management
- Requires nRF controller
- Edit-and-rebuild workflow
Firmware in CircuitPython: the board shows up as a USB drive and you edit a Python file directly. The most approachable to hack on.
- No build toolchain
- Edit live in Python
- Beginner-friendly hacking
- Smaller community
- Best on RP2040-class chips