Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Phoneify - 20 hours with Rails 3 & Twilio (phoneify.com)
95 points by sghael on March 4, 2011 | hide | past | favorite | 57 comments



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.


> 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?


I can't go as far as saying that I prefer one more than the other. They're both pretty awesome in their own way.

I'm actually way more comfortable with Django, but the Gem eco-system with Rails is amazingly mature, and the Rack based approach of Rails 3 seems to have positioned the framework really well, architecturally. I found Ruby/Rails idioms pretty confusing when beginning. But most of the learning curve w/ simple projects is really about "where stuff lives", and that's the same effort to learn in any framework.

Django pros: Admin, Python, Explicit model definitions (not via introspection like Active Record), South > Rails migrations (IMO), easier to create relational models, query syntax rocks.

Rails pros: Gem ecosystem, Passenger, Capistrano, Haml/Sass, Mailers

re: Pricing - TBD :)


Fabric is turning out to be really nice.

There are some new features that are should be merged into the project provided from here: http://tav.espians.com/fabric-python-with-cleaner-api-and-pa...


Please do write that blog post!


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!


Really nice site and a great idea; looking forward to your writeup.


Love to know what your using to deploy it.


I'm using Linode server w/ pretty standard Cap deploy. Using jammit and minification tools to pre-process some assets (like widget js code).


can you share gems used?


absolutely --

gem 'rails', '3.0.4' gem "mysql", "2.8.1" gem 'capistrano', '2.5.19' gem 'capistrano-ext', '1.2.1'

gem 'awesome_print', '0.3.1' gem 'closure-compiler', '1.0.0' gem 'compass', '0.10.6' gem 'devise', '1.1.6' gem 'fancy-buttons', '1.0.4' gem 'jammit', '0.6.0' gem 'jquery-rails', '0.2.7' gem 'haml', '3.0.25' gem 'hpricot', '0.8.3' gem 'hominid', '3.0.2' gem 'kaminari', '0.10.4' gem 'postmark-rails', '0.4.1' gem 'ruby_parser', '2.0.5' gem 'twiliolib', '2.0.7' gem 'uuidtools', '2.1.2'

group :production do gem 'passenger', '3.0.4' end


you should really avoid using rails 3.0.4 now. there is a security bug in rails 3.0.4. it is recommended to upgraded it to rails 3.0.5.


Pretty sure the bulk of the security updates were part of the 3.0.4 update, unless you mean this one which I didn't think was that big of a deal. https://github.com/rails/rails/commit/90aede67711476f0a63fdc...


this is a great list of gems, just wondering how you discovered all these. What do you use as a discovery tool for gems, or do you just search for them prior to coding yourself? For example I've never heard of awesome_print or kaminari.


http://ruby-toolbox.com/ is a pretty great way to vet (through popularity) gems you're thinking of using. They are sorted by category. aweseome_print is listed in the irb tools category, didn't see kaminari.


Ryan Bates / Railscast for lots of useful Gem reviews.

Other than that its a lot of "I don't want to write this..."; Google: "[thing I don't want to write] gem rails 3 github"


I like this! Good job, sir.


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...


+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.


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.


Nice job on the layout, very clean. I too would be quite interested in your notes about design and layout.


Nice App! I would love to hear your thoughts on why i should use phoneify over traditional email verification.


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.


I would see it as an additional security measure rather than an alternative.

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


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).


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


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).


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.


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.


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?


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).


Good point.


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.


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.


Looks very nice. Do you support international numbers or just US only for now?


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?


It should work, although I have only nominally tested international numbers. What country are you in?


Looks like Twilio doesn't (yet) do international SMS either:

http://www.twilio.com/international-sms


Listic is correct. We (Twilio) do not support international SMS on accounts by default. We are currently offering it in beta. However, after a quick email to Sandeep just now, I turned it on for his account and you should be able to test International SMS on Phoneify now. Reminder: it is currently in beta, so there may be some deliverability issues in countries that don't have great coverage. Let us know so we can make it better.


And this is why HN rocks. Thanks Daniel


For what it's worth it worked amazingly fast for me in Panama. It generally takes around 6 to 10 seconds for the sms to arrive from people a meter from myself. Twilio's sms arrived a two or three seconds after I pressed send.


Wow. That's awesome. Thanks for letting us know.


Didn't work at all in Belgium. Tried it twice, no SMS response. I'm in an area with perfect coverage.


Interesting. Thanks for letting us know. I'll look into it. We're definitely working to make sure we have the best coverage.


Also, can you let me know the carrier that you use?


Worked great, in the UK, the text arrived within a few seconds. Great idea :)


Worked for India in case you need to know!!!


Dint work for me (Also in india)


Thanks for letting me know. Can you tell me what carrier you use?


Airtel


Russia. International code +7


I'm using Twilio defaults -- Which means International is SMS only, and US+Canada works with Voice or SMS.


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.


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.


I love it, easy to use, and it seems very simple to integrate. Much more cool than captcha. congrats


Awesome idea, slick & complete implementation. I look forward to pricing details!


+1 for pricing details




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: