6 ms·
Show HN: Phoneify - 20 hours with Rails 3 & Twilio
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
- sghael 16y agoI 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.
- DanI-S 16y agoReally nice site and a great idea; looking forward to your writeup.
- pibefision 16y agocan you share gems used?
- sghael 16y agoabsolutely -- 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
- siong1987 16y agoyou 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.
- rapind 16y agoPretty 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/90aede67711476f0a63fdc81a05ab16e122d7d26 https://github.com/rails/rails/commit/90aede67711476f0a63fdc...
- minalecs 16y agothis 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.
- mr_november 16y agohttp://ruby-toolbox.com/ 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.
- sghael 16y ago
- tcummings 16y agoLove to know what your using to deploy it.
- sghael 16y agoI'm using Linode server w/ pretty standard Cap deploy. Using jammit and minification tools to pre-process some assets (like widget js code).
- poet 16y agoPlease do write that blog post!
- Dornkirk 16y ago> 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?
- sghael 16y agoI 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 :)
- mathrawka 16y agoFabric 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-parallel-deployment-support.html http://tav.espians.com/fabric-python-with-cleaner-api-and-pa...
- jsavimbi 16y agoI like this! Good job, sir.
- realitygrill 16y agoLooks 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!
- justinxreese 16y agoI 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.
- jcblitz 16y agoIt's clean, concise, and to the point. Great layout and everyone looks really polished. I look forward to your tricks and shortcuts write up.
- jarin 16y agoLooks very nice. Do you support international numbers or just US only for now?
- listic 16y agoSeconded. 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 16y agoIt should work, although I have only nominally tested international numbers. What country are you in?
- listic 16y agoRussia. International code +7
- listic 16y agoLooks like Twilio doesn't (yet) do international SMS either: http://www.twilio.com/international-sms http://www.twilio.com/international-sms
- danielzarick 16y agoListic 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.
- sghael 16y agoAnd this is why HN rocks. Thanks Daniel
- valjavec 16y agoSweet & 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 16y agoYou 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).
- minouye 16y agoAmazing--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...
- mikecarlton 16y agoNice job on the layout, very clean. I too would be quite interested in your notes about design and layout.
- sammville 16y agoNice App! I would love to hear your thoughts on why i should use phoneify over traditional email verification.
- mcdowall 16y agoI would see it as an additional security measure rather than an alternative. Signed up, will give it a try on my new app.
- sghael 16y agoPhone 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.
- JohnTitus 16y agoAwesome idea, slick & complete implementation. I look forward to pricing details!
- dr_ 16y agoI 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).
- buchin 16y ago+1 for pricing details
- lurchpop 16y agoBeautiful 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 16y agoI 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.
- Sujan 16y agoWhat 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 16y agoI 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).
- Sujan 16y agoGood point.
- phatbyte 16y agoI love it, easy to use, and it seems very simple to integrate. Much more cool than captcha. congrats
- zmmmmm 16y agoCurious 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 16y agoI'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.
- iuguy 16y agoWow. 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.
- wittjeff 16y 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.