Forking to the GitHub generation is a concept that happens when one wants to make a branch, and then submit a pull request for inclusion into the mainline source tree. Forking a project in the opensource sense is a lot different: it can start with different goals, move on to different design directions and eventually the battle of which one wins may not really be clear. Why is it not clear? A good example is the fork between GNU Emacs and XEmacs — they both somewhat successfully live on till today, yet it took over 20 years for a shakedown to reduce the pace of development of XEmacs (and for GNU Emacs to have most of the features and functionality the fork had). This talk will go through the goals of the MariaDB Project, how it was founded, how it managed to leapfrog features from the mainline MySQL, how it remained drop-in compatible with MySQL, how MySQL has managed to mostly catch up in terms of features in about 6 years, yet, how both projects have a strong community and userbase around it. In the MySQL and MariaDB world, it looks clear that this will be a successful branch, ala OpenBSD and NetBSD. This talk will also take into consideration the OpenOffice.org/LibreOffice split, what happened within the node.js/io.js world, as well as how SugarCRM or OpenSSL got forked. It will also study how not to do a fork, eg. Drizzle/MySQL. It will build upon the work of other notable opinions on this, from the likes of Eric S. Raymond and David Wheeler, as well as those in academia like Linus Nyman. Forking has been studied deeply, but how one successfully forks is a whole other ballgame. This is the talk you come to if you have to fork, and want to do it well (key being: have to fork). Learn from our journey in the MariaDB Server world.