top | item 2289635

Show HN: Phoneify - 20 hours with Rails 3 & Twilio

95 points| sghael | 15 years ago |phoneify.com | reply

I wrote this over the last couple of weeks using Rails 3, Twilio and a variety of Gems, putting in about 2 hours per day. I'd love any feedback from the HN community on any aspects of the site (design, API construction, documentation, marketing, pricing which is TBD).

On a related note: I have to say that I'm really flying with Rails 3. Typically I roll with Django, but have been super impressed with the Rails 3. Feels really clean, and there are some Gems that make the more mundane parts of the webapp construction fun and agile: Haml/Sass, blueprint, Fancy-buttons, Devise.

I'll probably write up a blog post soon on all the tricks & shortcuts I used to get this off the ground. Many of the shortcuts have to do with design and layout, and less so about backend coding.

http://phoneify.com

- @sghael

57 comments

order
[+] sghael|15 years ago|reply
I wrote Phoneify over the last couple of weeks using Rails 3, Twilio and a variety of Gems, putting in about 2 hours per day. I'd love any feedback from the HN community on any aspects of the site (design, API construction, documentation, marketing, pricing which is TBD).

On a related note: I have to say that I'm really flying with Rails 3. Typically I roll with Django, but have been super impressed with the Rails 3. Feels really clean, and there are some Gems that make the more mundane parts of the webapp construction fun and agile: Haml/Sass, blueprint, Fancy-buttons, Devise.

I'll probably write up a blog post soon on all the tricks & shortcuts I used to get this off the ground. Many of the shortcuts have to do with design and layout, and less so about backend coding.

[+] Dornkirk|15 years ago|reply
> Typically I roll with Django, but have been super impressed with the Rails 3.

Can you explain what specifically you like more about Rails? I've been using Django because my initial exposure to Rails confused me - after running the basic "start project" command there were dozens of files generated - compared to the 4 that get generated with Django (and the 3 or 4 more when you start a Django "app").

I'm also curious if you're planning on turning this site into a money-maker, just because it says joining will get you "50 free", but I don't see any pricing anywhere else?

[+] poet|15 years ago|reply
Please do write that blog post!
[+] realitygrill|15 years ago|reply
Looks gorgeous. Would you be willing to list everything you need to know (as a beginning programmer) to be able to build something like this?

Look forward to your blog post!

[+] DanI-S|15 years ago|reply
Really nice site and a great idea; looking forward to your writeup.
[+] tcummings|15 years ago|reply
Love to know what your using to deploy it.
[+] pibefision|15 years ago|reply
can you share gems used?
[+] jsavimbi|15 years ago|reply
I like this! Good job, sir.
[+] minouye|15 years ago|reply
Amazing--I've worked on projects before where if the barriers to integrating with existing solutions were lower, phone verification would have really helped. This is an awesome example of a niche problem, with an elegantly simple solution. If only you made this a couple of years ago...
[+] wittjeff|15 years ago|reply
+1 for great execution. Nice visuals. Did you do them yourself? If not, a reference would be great.

+1 for needing pricing details upfront. I'll suggest $.10/call or SMS but I might pay up to $.50 for my application. I could be using this within a couple of weeks for a project I'm building.

But... You must have noticed that there's another company using Phonify.com (no e). You're going to get in trouble with trademark infringement if you launch with this. Seriously, it's an easy call, and I wouldn't say that your space in the commerce realm is too far apart to matter. [insert flashing red light] Now maybe the other company won't have a trademark, in which case maybe you could use this, but then you can't trademark it yourself. Given the potential name confusion (I just typed their URL when I wanted yours a minute ago), I'd think hard about this before charging anyone for anything.

Some PHP sample code wouldn't hurt.

There are several Wordpress plugins for signing up for an email mailing list. Adding your service to that would be compelling. Note that the Wordpress people have a strong interpretation of the GPL (that is they assert that all plugins are covered under GPL and must be $free) though. But maybe that doesn't matter if you're charging per call.

Going further down that train of thought, I'm thinking someone might duplicate this functionality for Wordpress and just require the user to have Twilio account (as some folks require an Amazon storage account, or whatever). Twilio signup is a low bar to jump, so I'm thinking this is a reason to keep your fees low.

[+] justinxreese|15 years ago|reply
I like it. The only thing that bothered me was that I couldn't find the prices. But it looks like that is because the prices don't exist yet.

I would definitely look at using this, but only for a pretty serious application. Nothing I've worked on so far has required that level of authenticity, or verification of a working phone.

[+] mikecarlton|15 years ago|reply
Nice job on the layout, very clean. I too would be quite interested in your notes about design and layout.
[+] sammville|15 years ago|reply
Nice App! I would love to hear your thoughts on why i should use phoneify over traditional email verification.
[+] sghael|15 years ago|reply
Phone numbers are less disposable than email addresses (generally speaking), and thus you are less likely to have fraudulent/shady transactions occur on your site if the user is phone verified.

This may not be super important if all you want to do is prevent lowly Forum spam (ReCaptcha may be all you need in this case). But phone verification can be particularly useful when the cost of fraudulent transaction is high (like user purchasing goods on your site with a stolen credit card, etc).

As an aside, I saw Amazon and Craigslist now use phone verification for more critical parts of workflow. Which inspired me to build Phoneify as a JS widget than anyone could use.

[+] mcdowall|15 years ago|reply
I would see it as an additional security measure rather than an alternative.

Signed up, will give it a try on my new app.

[+] dr_|15 years ago|reply
I tried your demo but it didn't work for me. I opted to verify by phone, got the phone call, entered the verification code but it said verification code incorrect (i typed it correctly - did it twice).
[+] valjavec|15 years ago|reply
Sweet & simple.

2 questions: - works world-wide or US only? - how much do you charge per verification (SMS / voice)... can't find on a website, but I see I have $20 balance

[+] sghael|15 years ago|reply
You account balance is purely stubbed out. Right now there is no balance tracking (so it's basically free until I bake that in).

I probably should have put some thought into pricing before posting on HN, but pricing is one of those eternally difficult things so I punted for now.

International SMS verifications should work, but some people are currently reporting issues with that. No voice verification for International planned (for cost reasons).

[+] zmmmmm|15 years ago|reply
Curious what your hosting / reliability / scalability strategy is, if any at this point?

If my web site sign ups would rely on your service I'd be looking to be reassured about how robust it is going to be. Of course, after 20 hours it's amazing you have a front page, let alone a scalability plan so this is just a suggestion really rather than a question, but if you do have this designed in I'd be curious to hear it.

[+] sghael|15 years ago|reply
I'll soon be running on multiple (2 min) servers in different locations, for availability. Will probably stick to Linode. I use Webmin to monitor all processes and get realtime alerts if something amiss occurs.

Performance wise, there aren't many bottlenecks right now. Switching in Resque for my job queue (replacing Delayed Job) will make everything a little faster. If the queue ever starts to get large, I can quickly fire up another server as a dedicated worker.

I am leveraging AWS Cloudfront as a CDN for the widget JS, so the widget will load super fast for everyone. I offload all static assets when I can. Google CDN for JQuery.

The only immediate point of concern is the real-time API. That will soon have some throttling/limits on it to prevent abuse. I highly prefer people use the Post-back method to get notified of verifications (push is always better than poll).

As for proving reliability, I'm thinking of putting up public Pingdom reports for transparency.

[+] Sujan|15 years ago|reply
What made you design it that the user has to give the passcode to the calling server and not the other way around like with TXT?
[+] sghael|15 years ago|reply
I think its a better user experience to always show the number on a screen. Otherwise the user has to listen to the computerized voice recite the passcode, and they have to memorize it before punching it in.

This way, temporary memorization of passcode is avoided in both cases. The passcode is always rendered to pixels (computer screen or phone screen).

[+] lurchpop|15 years ago|reply
Beautiful execution. Gorgeous really.

Would like to see pricing. Don't be shy about it, dude. This is valuable service you're offering with a barrier of entry about as high as placing a LIKE button on one's page.

I experienced a bug with the demo. When I entered the first letter of the verification code it said "message recording". Subsequent tries didn't work either.

[+] djg38|15 years ago|reply
I have the very same app 80% complete. I haven't launched it because of all the caveats with international numbers. It's hard to try to sell this to web stores and the like that take orders from around the world if I can't support half their customers' numbers.
[+] jarin|15 years ago|reply
Looks very nice. Do you support international numbers or just US only for now?
[+] listic|15 years ago|reply
Seconded. When I press "Verify w/Call" it says "international phone numbers can only verify by TXT message. Please use the TXT messaging option." But Verify by TXT doesn't seem to do anything. Is it supposed to work?
[+] sghael|15 years ago|reply
I'm using Twilio defaults -- Which means International is SMS only, and US+Canada works with Voice or SMS.
[+] _b8r0|15 years ago|reply
Wow. That's an amazing idea and gorgeously executed. You should be really proud of that, put some prices in - you're in a great position to make a killing from this service.
[+] jcblitz|15 years ago|reply
It's clean, concise, and to the point. Great layout and everyone looks really polished. I look forward to your tricks and shortcuts write up.
[+] phatbyte|15 years ago|reply
I love it, easy to use, and it seems very simple to integrate. Much more cool than captcha. congrats
[+] JohnTitus|15 years ago|reply
Awesome idea, slick & complete implementation. I look forward to pricing details!
[+] buchin|15 years ago|reply
+1 for pricing details