

Hackathon Starter – Boilerplate for Node.js web application - sahat
https://github.com/sahat/hackathon-starter

======
mackwic
If you want boilerplate, the Yeoman collection tools:
[http://yeoman.io/](http://yeoman.io/) is what you need. There's boilerplate
for a huge amount of projects, with generators of the parts (like: service for
Angular, models for Ember, routes for Backbone...). The angular-generator is a
very complex piece of work, but is extremely efficient. I highly suggest you
to try it twice: once to fuck things up, another to understand the good way.

You can eventually use these CSS and HTML skeletons
([http://html5up.net/](http://html5up.net/)) to do something neat, but I don't
think someone will judge you because you used bootstrap.

In term of javascript development, I've found SugarJs
([http://sugarjs.com](http://sugarjs.com)) to be extremely productive and
efficient for what I need, combined with the front-end framework of your
choice.

And you, what's yours ?

~~~
tdumitrescu
If you find that the Yeoman flow requires too much setup and ceremony, Brunch
([http://brunch.io/](http://brunch.io/)) is a good lightweight alternative -
faster to set up and also just faster in general at compiling assets. They
have a lot of community-created app skeletons, and I've found it pretty useful
at getting projects bootstrapped quickly without reinventing the wheel.

~~~
mackwic
Thanks ! I'll definitely test that !

------
Xdes
There's also a nice tool called Lineman
[http://www.linemanjs.com/](http://www.linemanjs.com/). It's a simple
convention-over-configuration-get-out-of-your-way command line utility that
does all the heavy lifting so you can just code your app.

There are a number of templates[1] to get you started and once you get over
the initial learning curve lineman fades into the background while you iterate
on your app.

For a comparison with Yeoman see: [http://www.linemanjs.com/#lineman-vs-
yeoman](http://www.linemanjs.com/#lineman-vs-yeoman)

[1]: [http://www.linemanjs.com/#project-
templates](http://www.linemanjs.com/#project-templates)

~~~
searls
Wow thanks for the kind words!

------
fantastical
The use of the word "kickstarter" is pretty confusing here. My first thought
was that this was something people at hackathons could use to put up ideas and
see who's interested in joining them. I guess I should have noticed the
lowercase "k".

------
samingrassia
You should also checkout Drywall
([http://jedireza.github.io/drywall/](http://jedireza.github.io/drywall/))

Has all major oauth integrations and a fantastic user system... I have also
heard that it was used a bunch at node knockout recently. Definitely worth
checking out-

~~~
ChrisBland
I've used Drywall - it makes standing up a service nice, however I dislike
their backbone on every page vs single page app. I wish they would have done
that diff, but its easy to use the existing API for things like resetting
passwords and sending emails.

~~~
czbond
Another vote on Drywall as well. I do agree though with your backbone vs
single page comment. That bugged me - but can't complain.

------
will_work4tears
Is XCode or Visual Studio really a prerequisite? I guess I'm missing
something, but looks like I could do this in IntelliJ or even sublime. Looks
very interesting but I don't use either of those and don't have the current
ability to run out and buy a Mac and have no interest in developing on
Windows.

~~~
ceejayoz
Via the GH issues list:

> Both mongoose and bcrypt libraries (and could be a few others) require gcc
> build tools in order for those packages to be installed. On Ubuntu you would
> do sudo apt-get install build-essential. On Mac you would need to install
> Xcode to get the command line tools, and on Windows you would need Visual
> Studio.

~~~
Moto7451
On newer versions of OS X, invoking gcc will prompt you to install the command
line tools. This means you don't need all of XCode.

The best (visual) example I could find is on this page:
[http://railsapps.github.io/xcode-command-line-
tools.html](http://railsapps.github.io/xcode-command-line-tools.html) (scroll
down a bit).

------
squigs25
This is so cool! Has anyone seen anything similar for a python flask app
boilerplate (with OAuth + how to use guide)?

~~~
rch
I'm working on one for this Wednesday. Let me know if you're interested.

~~~
squigs25
Definitely! Let me know

~~~
rch
Sure thing - just drop me a line (email in profile).

------
pavingways
I know it's shameless, but what are comments for if not self-promotion... I'm
working on something like that too:

[https://github.com/rocco/node-base](https://github.com/rocco/node-base)

My focus is on clean structure, completeness of tools and documentation
(mostly inline) so you not only get a node/express/jade/everyauth/mongodb app
but also can learn what's going on and how it all works together.

SPA app on top coming up ...

~~~
jaredhanson
Can I ask why you chose everyauth over Passport? (I'm the developer of
Passport.)

By all accounts, Passport is by far the more popular authentication package
(95,000 downloads from npm in the last month vs. 2,100 for everyauth).
Furthermore, maintenance of everyauth seems to have come to a halt, leaving
outstanding bugs and issues unaddressed. In contrast, Passport has 100% test
coverage, and has an API that's been proven stable over ~2 years.

~~~
pavingways
Sure!

I guess when I decided everyauth over passport about 4 months ago (there was
an actual decision process IIRC) it seemed like everauth was more mature, I
found more examples and other repos explaining how I could bend it to my
needs.

Recently I've come across passport quite often and it appears to be the gold
standard nowadays... So yes it's going in at some point in time (this is a
minor side project only).

I will happily merge a pull request if you care to go for it - I currently
only support facebook and twitter and was working on local user/pass up until
an hour ago ... ;)

------
subpixel
A _boilerplate_ for Node.js would be less confusing.

------
driverdan
Very nice! This is a much better (and updated) version of my express-
foundation project I created for hackathons:
[https://github.com/driverdan/express-
foundation](https://github.com/driverdan/express-foundation)

I've pretty much abandoned express-foundation since I haven't been to a
hackathon in a while. This repo pretty much seals its fate.

------
cridenour
I think the differentiator here is the amount of documentation and that they
make no assumptions about your system. For instance, telling me I need XCode
to even build some of the libraries - not something I see in very many docs
but absolutely something I see people run into at events like Startup Weekend.

------
dworin
As a casual hackathon participant, this is a really great tool. I've seen
countless teams with winning ideas go down in flames when they spent two days
on the log-in page. And I attribute any success I've had at hackathons more to
my ability to prioritize away from those activities than my actual programming
chops, which are average at best.

The biggest advantage you'll get out of this system is that it's simple, and
you know it in and out because you built it. With all of the other tools that
do the same thing, you run into the same problem: you don't have time to learn
a new tool at the hackathon. By the time you've figured out Yeoman (which
looks really cool), you only have a few hours to implement your app's actual
functionality.

~~~
RaphiePS
I don't think I've ever even tried to implement a login page at a hackathon. I
just pretend that every user is authed and go to work on the cool stuff that
I'll actually demo.

Since it takes up valuable time to show off "auxiliary" pages like account
setup, I think it's okay to just skip 'em. Most people won't mind, as it's
well understood that hackathon projects are not ready for prime-time.

------
vamur
Unfortunately requires Mongodb as every other boilerplate Node.js app.

~~~
q3k
Eh, typical HN hip technology framework ;).

------
jsumrall
Cool work, but like others say, the title here is confusing.

------
tvaughan
I wondered when this day would come. This project doesn't consider Linux a
platform you develop on [https://github.com/sahat/hackathon-
starter#prerequisites](https://github.com/sahat/hackathon-
starter#prerequisites), but rather a platform you deploy to, if that. Heroku
is so abstract it could be almost any OS.

------
gadr90
Jesus, this is an enormous step up from mean.io and also from CLEAN[1], my
fork of mean. Huge thanks for this, will become my new boilerplate. Anyone up
for mantaining a Coffee fork? I think I'll do it.

[1] [https://github.com/gadr/clean](https://github.com/gadr/clean)

------
ankit84
Kudos !!

Awesome, this is what I wanted to make. We should make this config driven. say
what Oauth/logins to be enabled, etc.

Any one starting a new project should use this this config and be able to get
desired features up and running in minutes.

------
christiangenco
The instructions for setting up authentication accounts on github and google
saved me so much time. I wish I could give this all the stars.

------
Marcus316
Thanks for posting this. I am particularly interested in the OAuth2 portion.
I'm going to go pick through your code now. :D

------
nathan_f77
Cool! Is there anything like this for Rails?

~~~
hkarthik
I usually reach for Rails App Composer to spin up quick apps.
[http://railsapps.github.io/rails_apps_composer/](http://railsapps.github.io/rails_apps_composer/)

------
romain_dardour
Or you could use [http://hull.io](http://hull.io) and not even need backend
code

------
aioprisan
Awesome work! I think the tag line "boilerplate for node.js hackathon apps"
would be more fitting.

------
twog
Does anyone know of a similar project in Ruby?

------
nawitus
I think it should include a Gruntfile.

