All applications must be built using Node.js.
You've got precisely 48 hours to develop your web app during the competition and not a minute more. The competition kicks off at 12:00 AM / 00:00 UTC on Nov 11th, 2017 and ends at 11:59:59 PM / 23:59:59 UTC on Nov 12th, 2017. PLEASE make sure to find out exactly what time that is in your timezone. We don't want anyone to have a disadvantage because they didn't do the conversion ahead of time.
Of course, feel free to work on the concept for your application before the competition starts: pretty hand-drawn pictures on napkins, angry email threads between team members on two-space or four-space indentation, schema designs, finite state machines. Just no digital assets including graphic design assets, code, etc.
After those 48 hours are up, judging will start. No additional features or bug fixes are allowed during judging, or you will be disqualified. Please don't make us disqualify you; we'll be very sad.
Teams are composed of between one to four individuals. No more than four people are allowed on a team. Individuals don't need to be programmers nor even know Node.js, but both of those definitely help.
If you work for a sponsor of Node Knockout you can still compete! They won't be able to influence the judging process. Additionally, don't worry if you know a judge either: we'll prevent judges from voting on a team they know personally and they're committed to staying impartial.
Source code will be hosted in a shiny, free git repository. We'll send repo access information before the competition starts. Your team should push regularly to show progress. We'll be watching to make sure people don't cheat (don't think you can develop everything ahead of time and push it all at the end; we know lots of git tricks too).
We will provide free, private instances to deploy your code to during the competition. Expect login information before the competition starts.
In order to ensure that no code is changed during the judging week, all contestants must deploy their apps to the instances we provided for the competition. You cannot deploy to any other server, no matter how face-meltingly awesome it is.
Entries will remain up until winners are announced. During judging, we will have access to make sure there is no cheating, including comparing deployed code with that in the git repo. After the 48-hour deadline, you will still be allowed to restart processes, free up disk space, and other general sysadmin tasks.
Entries should be web applications. It's hard for judges (especially the general public) to fairly evaluate entries that require compilation or setup. If you want to submit a non-web app, you're welcome to, but you aren't likely to get judged fairly. If an app is not a website, but some library, utility, or desktop program, then it must be deployed to the npm registry.
If you do decide to submit something that isn't immediately accessible via the web, then we encourage you to think of a clever way to share it as a website (e.g. via VNC) or market it (e.g. jQuery Quicksand).
If you want to make sure that the expert judges looking at your app have a technical background, you'll have an option to label your entry so. We'll assign technical judges accordingly, but there are no guarantees that your assigned judges will have any given specific expertise. Also, other non-technical judges may still be called on to judge your app if technical entries greatly outnumber technical judges.
Libraries, plugins, and modules that are public and freely available are allowed and encouraged. During judging, please list all libraries that you use on your team's profile page to give credit where it's due. Stock photos and free icon sets are allowed. Paying for something that is not generally available to everyone else is not allowed, and not nice.
Developing a library in secret before the competition that provides the same general functionality of your entry and releasing it a day before will likely get you disqualified and called sneaky. On the other hand, developing a library that is publicly available and provides a general-purpose, publicly usable function can be done before the competition begins.
We encourage use of third-party web services and their APIs (e.g. Twitter, Flickr, Google maps). Almost everyone loves mashups. Again, make sure to update your team profile with what services you use.
The code you write is yours. If you intend to share it after the competition, you can pick whatever license you love. We encourage contestants to open source their code, but it's totally up to you. If you want to start a business based on it, awesome.
Please note we will have access to your repository during the competition to audit for cheating, but we won't steal any of your secret recipes or patent-pending algorithms. Stealing will get us disqualified.
Winners will be picked by a mixture of voting by judges, contestants, and the general public. Learn more about scoring.
Please remember this is a competition just for fun. We encourage playful competition, but most of all we want everyone to have a good time. This event is to help the Node.js community learn and come together in a good spirit. Be nice to your fellow competitors. Don't break any laws. Have a good attitude and enjoy yourselves!