

Show HN: My girlfriend needed a Secret Santa web app, so I built her one - dinosaurs
http://www.memofromsanta.com

======
dinosaurs
I built this. Girlfriend needed this to organise her christmas party and we
couldn't really find a nice one on the internet.. So I built it myself. Mostly
for her and as an exercise for myself (I learnt the basics of Angular and
NodeJS along the way), but then my designer friend came up with the design and
we put it live. Hope you enjoy it.

~~~
taigeair
What resources did you use to learn NodeJS?

~~~
dinosaurs
It's been a long journey of playing around and never finishing small projects
until I started this and then it suddenly clicked. I had a bit of PHP and
Rails experience prior to this, but Node was pretty much new to me, except for
the JS part. The whole async mindset got me in to trouble a couple of times on
this project.

The courses on Codeschool helped me tremendously, and this was fun to play
around with:
[https://github.com/rvagg/learnyounode](https://github.com/rvagg/learnyounode).
I read a lot of blogs and some books (will get links later if you want), but
mostly it was just trying until it clicked.

~~~
taigeair
Cool thanks!

------
tehwebguy
Awesome, now get an affiliate account at Amazon and make gift suggestions

~~~
darkxanthos
This is a brilliant idea.

------
capnrefsmmat
I tried this earlier with three people. Two of them were told to give presents
to the same person, and one person was left present-free.

Not sure if you've fixed that already, but it seems like an important feature
to get right...

~~~
clarle
With three people, wouldn't a valid Secret Santa solution have everyone
knowing who's giving which present to who?

~~~
colechristensen
Yes.

------
nej
This is cool but using Ghostery plugin on Chrome
([https://chrome.google.com/webstore/detail/ghostery/mlomiejdf...](https://chrome.google.com/webstore/detail/ghostery/mlomiejdfkolichcflejclcbmpeaniij))
reveals 16 different javascript trackers and advertising libraries used on
this website. I know in the footer it states "Memo from Santa does not store
e-mail addresses. We will not send you e-mails apart from the event e-mail,
nor will we use your e-mail address for any other purpose." but as this being
a free service it's kind of worrying. Should I be worried about giving the
emails of all my relatives and friends?

~~~
dinosaurs
I suspect this is because of the addthis social services. Will dig into this
later!

Edit: my Ghostery reveals just that: Addthis and Google Analytics. I could
perhaps replace Addthis with just a Twitter/Facebook social button, but I
liked the layout of the Addthis buttons.

------
dinosaurs
If someone tests this and their email goes to spam, would they be so kind to
pastebin me the message headers/mime so I can try to solve that together with
the Mailgun folks? Thanks a bunch.

~~~
mandeepj
How about creating a test email a\c by yourself to see if the email goes to
spam or not? Your existing email a\c may also work.

~~~
dinosaurs
It doesn't go to spam in my Gmail, which it did yesterday. However, some
people are reporting the mail going to spam. This is why I'm asking, I can't
test it myself on any account.

~~~
bcantoni
Another good test is [http://isnotspam.com/](http://isnotspam.com/). By
sending an email from your app to check@isnotspam.com, you can get some good
feedback on spam triggers.

~~~
Erwin
I like [http://www.mail-tester.com/](http://www.mail-tester.com/) \-- that
creates a unique address just for you, while isnotspam lets you search for
anyone else's message.

------
jrnkntl
Note; you should fix your SPF records, all mails end up in spam.

~~~
dinosaurs
Does it? I checked this with Mailgun yesterday and they told me to send
through the API instead of using SMTP. So I did, tested with Gmail today
(where it was ending up in spam) and it arrived in the inbox.. I'll check with
them again.

~~~
jrnkntl
Still, if you send through their API you still need to list mailgun.org in
your domain's SPF records (because you define ...@memofromsanta.com as the
sender).

~~~
dinosaurs
Their 'Check Records' tool tells me my records are fine. I'm on the chat with
them at the moment, trying to figure it out. Thanks.

------
jameszhang
Great job, this seems pretty fun. Plus, I'm sure your girlfriend really
appreciates it, which is always awesome :)

Just one slight thing I noticed is that the "winsdom_scriptregular" font is
quite hard to read.

~~~
dinosaurs
Thanks a lot!

The font indeed is a bit hard to read. We were in doubt about using it for a
while because of this, but in the end we liked the handwritten lettering.. so
we went with it anyway. :)

~~~
rpicard
What do you think about Lobster?
[http://www.google.com/fonts/specimen/Lobster](http://www.google.com/fonts/specimen/Lobster)

Great idea for a web app by the way!

~~~
Systemic33
That font seems to still have the holly in it, and more readable.

------
erex78
HN people might not care about this sort of thing (ending a sentence with a
preposition), but it screams out at me:

"We'll make sure everyone knows for whom to buy a present!" vs. "We'll make
sure everyone knows whom to buy a present for!"

Good job on the who vs. whom though..

~~~
gejjaxxita
This is the sort of English up with which I will not put.

~~~
erex78
Winston?
[http://public.wsu.edu/~brians/errors/churchill.html](http://public.wsu.edu/~brians/errors/churchill.html)

~~~
gejjaxxita
yep!

------
kanamekun
Looks great!!

Was just about to set up a Secret Santa on Elfster... was wondering how your
site stacks up in terms of facilitating a gift exchange between
friends/coworkers?

~~~
dinosaurs
I don't know Elfster, but after a quick look it seems like they offer
wishlists, gift exchange, etc?

We send out an e-mail to everyone on the list saying that Santa is busy and
asking them to buy a present for person x. The rest is up to them. Not as
advanced I guess :)

~~~
hablahaha
Surprised you didn't know about Elfster - I thought about making my own app
too, until I saw Elfster.

It's not quite perfect and seems to barely hold itself together (am I signed
in, do I have account or do I not?!, etc..), but my friends and I have gotten
by. I was able to invite people, remind them to join before the deadline and
set exclusions on matchups (I didn't want significant others to get each other
as well as people who aren't good friends). People have wishlists, like you
mentioned. It's served us well enough for a one time thing, I'm not really
sure what else I would need or want.

I guess one could extend the concept and become a broker for the gigantic
anonymous gift exchanges? Like the Reddit Secret Santa, except people order
from you or send you the packages? I know of people who never got their
present even though they had sent a present.

------
Evgeniuz
I recently did Secret Santa app too, but it is frontend only (no server side,
to be ran with all people present). I did it mostly to play with AngularJS,
but it has some nice geeky features like using truly uniform shuffling and
Fortuna PRNG for more unpredictability. It's in russian, but interface is
pretty obvious, so feel free to try it :)

[http://evgeniuz.github.io/santa/](http://evgeniuz.github.io/santa/)

------
jrnkntl
Ha, looks nice! You could monetize this by letting everyone fill out a wish-
list and offer affiliate-linked suggestions based on what is filled in? (Same
as [http://namentrekken.be](http://namentrekken.be) does this; that wasn't an
option for your gf? :)

~~~
agilebyte
Or [http://www.drawnames.com/](http://www.drawnames.com/) from the same
company if you want it in English

------
derpson5
Very cool, an inspiration. How long would you say it took you? (hours of work)

I ask as a young developer looking to gauge where he stands. Anyone have
resources they could suggest for gauging fast/slow development for oneself?

~~~
dinosaurs
I didn't track time on this, but it took me 5-6 days to get it all done. I
wasted a lot of time though: I didn't know much about NodeJS backends when I
started this, and next to nothing about AngularJS. I did a couple of things
three times until I got them right; I used to work as a front-end developer
until I got fired last month, so now I'm trying some new things. I'm glad it's
an inspiration for you.

~~~
joeperks
Well best of luck! Of course I don't really know, but you're obviously
motivated and have skills, so I would bet you're now on the upswing.

I am finishing something now that I hope to post to Show HN as well. Get some
feedback, etc.

Edit: AKA derpson5, decided to change my username. Sorry HN DBs, wasted a
record.

------
huangc10
great idea! :) I've been using elfster for the last couple of years.

------
ftay
Currently, when I fill out the form, I have no idea what's going out to the
recipients - perhaps a mad libs-esque design would explain why each field,
e.g. party title, is necessary :)

~~~
dinosaurs
May I ask what you mean with mad libs-esque? I did think about what you're
saying while developing it but we kinda rushed things and didn't get to focus
on the design much. Maybe for next year? :)

~~~
atwebb
Hi ______(target user) ,

My name is ______(yourself) and this ____(verb) _______(noun)!

Hi Dinosaurs,

My names is atwebb and this is madlibs!

And you'd put the parens on the line, but I'm not sure of the markup for
underlining here and feeling lazy.

~~~
dinosaurs
I see. Great suggestion, might even use that for something else I'm working on
:) Thanks for explaining!

------
afs35mm
What platform did you use for deployment? When I dove into Node awhile back it
seemed the most difficult part was finding a stable hosting solution...

~~~
dinosaurs
I'm hosting this on a Digitalocean box, proxying Node through Nginx. Not sure
if I did all that correctly, because that certainly was completely new to me,
but it seems to work fine for now!

------
ninetax
It's very pretty, what did you use to design the site visually? Just plain old
html/css? A template? It's simple but good looking!

~~~
dinosaurs
My friend designed this, I did the front- and backend. It's just plain old
HTML/CSS, using Jade for the views and Sass for the CSS, with some Bootstrap
components. The grid especially was a great help.

------
Systemic33
Minor annoyance: The "Amount of cash to spend" slide bar, needs to have its
color inverted.

Otherwise, i think it looks great :)

------
era86
Diggin it. Already using Elfster though!

------
tspike
Nice work! I built a similar site a few years ago and it's turned out to be
pretty popular.

------
dmak
Elfster works pretty well!

~~~
mikeg8
That may be true, I've never used Elfster, but the design of this landing page
is far superior and more festive in my opinion. I probably wouldn't use
Elfster after seeing this based on appearance alone.

------
elwell
load page.

press "+"

visible error message

------
mosselman
So?

