Let’s push some history about the app you’re currently using: Push4, which I started coding in 2009.
The server side uses Rails 2.3, Event Machine, Redis, MySQL, Resque and a lot of specs. It’s efficient, it was efficient at the time and still is. Some numbers everyone like: I deliver 400,000 pushes per day to 8,500 devices (or 5,100 active users, as users have more than a single device these days). I do 70,000 requests per hour to Twitter, fetch 7,000 RSS feeds every 20 minutes, pull pushes real time for 2,500 twitter accounts through their realtime API (I was within the first to use their feature, even before being released beta for more developers). I generate 47,000 requests to Facebook per hour. I process about 1,000 emails per hour. All this happen on 2 servers only, and those are busy doing other things too (I use them for other projects like heritage or liker).
Please be aware those are happening every single day of the year, all the time. I’m the only developer on this, and the servers run on their own. Numbers might look small, but they’re big enough when you have to do the whole project yourself, backend and frontend, support and so on. You don’t have a day off, mostly when it’s all about being pushed instantly. Get a 10 minutes system delay for everyone and you already got 20 angry emails from active users. Better not fuck it up :)
The iOS side uses Three20 (the worst choice I’ve made in my iOS developer lifetime), and is already a rewrite of the original Notification app which was my first real iPhone application. It includes a lot of bug, the Three20 lib isn’t supported anymore, and any new bug I get with new iOS release are giving me huge headaches. Adding feature or fixing bugs in my current app has became a big problem.
But a lot of things happened since 2009. We now have Celluloid, Rails 3.2, Mongo, Sidekiq, Ruby 1.9 and so on. We now have automatic iOS on the air update, and you can basically code for iOS v6.0 from today, and never code for something older than one or two iOS releases old. We have retina screens, multiple devices, nice StoryBoard (well not so nice sometimes but whatever).
The current application and server require very little support from me, else I’d have pulled the app from the appstore already, as I have no time and it doesn’t generate any revenue, barely enough for paying for the server cost. However I do have 8,000 devices live, and a total 60,000 users overall (including non active users), so there might be a market for my app anyway. I didn’t do much marketing so far,
spams I mean emails, and so on but if I did try to push getting more users, I could get more.
However there is a bigger issue on that whole project, an issue I tried to tackle in many ways (in app purchases for new features, credits for receiving pushes, etc) but never succeeding in the end. Today you’re paying once for the app, but I then have to indefinitely pay the hosting and manage the servers. I also have to indefinitely work on the app itself to add features you guys want to see, UI improvements and so on. Other app developers have to do the same thing (and only a few complain) but they either have no server cost, have a smaller app, or have a bigger market share so selling new applications is enough to pay for the current work. They might have other magic going on than I’m not aware of, and I’d be pleased to hear about.
One thing I’ve recently thought about, is asking for the app current cost ($5) once a year to every active user. You still use the app a year later? You’d need to pay again for using it for a year and so on. Users were angry at such options in 2009, but the Push application landscape has changed a lot since (boxcar being dead in the water, should never have had that success anyway, and other smaller push apps also disappearing), and I feel users now understand it’s better to pay a low fee for a working application, getting an always up to date iOS application, than not paying and getting the application disappear from the AppStore like many similar applications did. What’s your feedback about that price/cost issue? I’m very interested about my current user feedback, and haven’t decided yet.
I’m the first user of my own application, I have 5 twitter accounts, over 550 feeds (you read right, but I deactivated sound for rss feeds…), so I am in need of a new version of my own application. The next version of Push (codenamed “Donkey” as the official name isn’t public) will be a complete rewrite. The server side, as well as the iOS one. This work will probably take one or two months full time work, it’s a lot of money but I’ll learn new technology on the way, and I already know I’ll never get that cost back through new sales but most my life I did things because I wanted to, not because they were interesting money wise.
What would you like to see in a next version of the app, what would you like not to see disappear from the current app, and what’s your thought about the pricing issue I’m running into since day one? Replying on Twitter is ok: @appnotification.