We've released PushForm under GPLv3. The source is available on GitHub, and there's more about the release on our open source page. A few people have asked why we went with the GPL rather than something more permissive like MIT or Apache, so here's the reasoning.
A few years ago I don't think we'd have made this choice. For a long time the standard advice for a software company was to stay away from the GPL. If the library you wanted was GPL, you went looking for an MIT or BSD alternative, and if there wasn't one you wrote your own or did without. Plenty of companies had (and still have) a flat rule: no GPL dependencies.
That made sense when your code was the valuable thing. You spent years on it, and it was a big part of what made your product hard to copy, so you kept it to yourself. The GPL says that if you distribute software built on GPL code, you have to make your source available under the same terms. If your whole plan was to keep the source private, that was the end of the conversation.
I don't think that holds up any more. Keeping your code to yourself just doesn't protect you the way it used to. With the coding tools we have now, a determined team can rebuild a lot of a product from the outside, by using it and reading the docs, without ever seeing a line of the original source. Whatever advantage we have is mostly in the decisions we make, how fast we fix things, and whether the people using PushForm trust us. Hiding the source doesn't do much for any of that.
What hasn't changed is the cost of avoiding the GPL. There's a lot of very good GPL code out there, and a fair amount of it is exactly the kind of thing design software needs. LibreDWG, the GNU library for reading and writing DWG files, is GPL. So are Blender and Inkscape. So is OpenCutList, the cut list and cutting diagram tool a lot of woodworkers rely on. We have plans that could use all four, and if we weren't GPL ourselves, none of them would be open to us. Worse, staying clear of the GPL means you have to keep checking. Somebody adds a package, that package pulls in something GPL three levels down, and now you have a licensing problem to clean up before you can ship. It's a minefield, and we didn't want to spend our time tiptoeing around it to protect something that isn't worth much any more.
Being GPL ourselves makes most of the minefield go away. GPLv3 code can use code under MIT, BSD, Apache 2.0, the LGPL and of course the GPL. There are still a few edges. Code licensed as GPLv2 only can't be combined with GPLv3, for example, and the FSF keeps a long list of what's compatible with what. But it's a much shorter list of things to worry about, and we get to use code we'd otherwise have had to walk past.
The part I like best is what it does to everyone else. If somebody wants to take PushForm and use it as a springboard for their own product, they can, and honestly that's fine. But if they ship it, they have to share their changes under the same license, the same way we did. They can't take the work we've shared, close it up and pull the ladder up behind them. That keeps the playing field level, and if they improve something we can learn from it too.
"Code is easy to copy now, so you might as well share it" is a slightly bleak way to arrive at an open source license. But I think the conclusion holds even if you get there by a less cynical route, and if you're picking a license right now I'd suggest giving the GPL a serious look.
One question we get a lot: the license covers the software, not what you make with it. Drawing a cabinet in PushForm doesn't put your cabinet under the GPL.