Learning SQL can be difficult and we tend to learn best by doing. This started as a short project to build a site that would allow you to interactively learn SQL, but real life has caused it to take far longer than I originally planned.

The initial release is focused entirely on a minimal product with a string foundation. A lot of the change deployment, test infrastructure, and so on has been built to let me quickly add small features or additions as I have time. Additional exercises, new exercise sets, more extensive query functionality, the ability to save progress and login, these are all features in the idea list that have not been added yet.

Check out the About section of for more up to date general information.

This is Experimental Code

This system works and has a deployment pipeline and integraiton tests to help keep it in working order.


When writing this system initially (in 2012), it also served as a test bed for a whole variety of different patterns and technologies that I was trying. Some of these I continued to use in other projects (knockout, selenium, logging) and some I did not (SquishIt, Chutzpah, general architecture patterns). Even the ones I kept, like knockout, evolved a great deal in other projects.

So short version: This works but beware copying patterns from the code, as is often the case when we look back on older code, I want to take everything I've learned and rewrite the whole thing.


The code is available publically to let people who are curious see how it works, learn from it, and potentially contribute (in either commentary or new code). No permission is granted to copy and reuse the code for commercial purposes. If you are interested in reusing the code for commercial purposes, contact me.