There is no need to spend any time on the software side of things. It's already been done to death.
http://www.keyboard-layout-editor.com/#/
https://kalerator.clueboard.co/
A neat response to this article would be someone making a keyboard using only these tools.
(post is in Spanish, I wish to brag with my old mates:
http://clubdelpra.cluster003.ovh.net/foros/showthread.php?p=...)
For those who might be interested here is my firmware project: https://github.com/marcv81/umk. I like to think it's more approachable than QMK, at the cost of features.
The first person to build a "row" based multi layout platform will really start to hit the right spot because some people would want a function row, others not, some would want an ISO enter, others ANSI, and as long as it was plug and play, it would eat the market whole.
People on Geekhack seem to love collecting keyboards. I just want one, that I can use, that will match my mac layout.
It's one of those "I wish someone else solved this so I could spend my money on it vs. my time"
Thanks for the suggestions tho!
It's clearly possible, but nobody does it yet. I considered building my own board, but now I'm leaning modular. Thanks for the suggestion though, it's helpful to illustrate how "close" so many keyboards are and the obsession us KB nerds have.
A design requires an effort (the TFA author worked for 3 months on it) and future changes to it requires extra effort. Plus you need to have the knowledge, the time, and the will to go through all this.
Whereas a modular component could be assembled by anybody, tested, changed to a different format if their needs change or they don't like the first one etc, at a moment's notice.
I actually made some single-switch PCBs with some (IMHO) clever design ideas to make one-off keyboards much easier to solder together, but never went much further with the idea.
I think there would be lots of buy in -- lots of devs (kickstarter level of "lots") would want to make a customized keyboard but can't afford the time/bother with going from scratch.