How I Built a Side Project
stayintech.com
stayintech.com
Great!
The open rate of the email was 45,8%
That's excellent.
...and 27 people replied.
Oh. Oh dear.
~ 96% of respondents told that they would - or already have - recommended the tool for a friend or colleague.
96% of the people who are enthusiastic enough about the service to respond to an email would recommend the service, but the 97.8% of people didn't respond is by far the more important number. If the people who'd tried the app were a random sample of the population then 2.2% might be enough to suggest there's a valid premium business model there, but the people who tried the service weren't randomly selected - they were a self-selected group of people who are interested enough in user testing to sign up for the service. If you can't get a significant response from a group who are (alledgedly) interested in your type of product then you clearly have a big messaging problem.
I think the more helpful baseline is likely the folks that opened the email (we can't infer a lot from the ones that didn't -- email services may have simply junk-mailed the message for the other 54.2%). 27 / 560 is 4.8% which is still not awesome, but it's really not terrible.
1 in 20 people who saw OP question about the service were compelled enough to provide a response. That's not bad.
> If you can't get a significant response from a group who are (allegedly) interested in your type of product then you clearly have a big messaging problem.
I really wouldn't be so down on it. What's the average read-to-recommend on the average unsolicited call to action message? How many people actually provide extra details when an application on our computers crashes and the OS wants to send a bug report?
How many actually send the bug report? That's just a button click.
Providing their email for updates is a good indicator the base pitch is interesting, true. But it's an almost mindless activity. How many times a month does the average technophile give away an email address?
Enough times, is how many. And enough times to likely forget more often than not what they'd signed up for a day ago, let alone continue to really, really care about it.
I'm sure OP could have built a more compelling email campaign that used the right communication strategies to elicit a greater response. But, I'll take 5% over 0.
That is called click-to-open ratio and you're right it is a good metric. However 4.8% is not a good number. Typical healthy marketing emails see CTOR around 20%
How was this number calculated? There is not really a way to reliably detect this. Methods like the tracking-image do not work on Gmail.
I'm not a Heroku user, so I can't vouch for their service one way or the other, but they do provide a lot of value-add. The time it takes to set up and maintain those services by hand is not free. Unless you yourself are in the business of providing a service platform so that you can generate economies of scale, the time you would spend over the course of a year in maintaining backups and software updates and addressing zero-day security issues for your $10/month Linode would quickly add up to the $3000/year the Heroku services cost. And that's all assuming that you already understand all the sysadmin-level details that, let's face it, most developers don't have the time to keep up with. And honestly a full-time sysadmin can't keep up with everything for every subsystem. There's just too much.
The more I think about it, the better value Heroku appears to be.
I just don't think that managing your own SSL cert and backups are worth $250 a month for a tiny application that no one uses. Logging into your VPS once a month to install updates is beyond trivial. That might not be my strategy if I had hundreds of paying customers, but the author of the article didn't have hundreds of paying customers.
The moral of the story is that you should choose the right tool for the job. A $250/mo. Heroku app for a developer who wants to fiddle around with it for a tiny side project is not a good value as far as I'm concerned.
$250/mo is not a viable business plan.
As much as I'd like to say my time is more valuable, honestly I'd rather save my $250/mo and built out a solution that's cheaper.
For the naysayers, my relatively small apps receive over 300k reqs/day and it's hosted on a much, much cheaper infrastructure. Just remember to cache things where appropriate and you'd be surprised how much $30-40 in server costs can take you.
He'd only have needed, say, 10 paying customers to cover his expensive hosting. The fact he couldn't get those first 10 customers is why he failed, not the hosting costs.
I agree that if this app is just a hobby, it's not worth having all the extra services. But given the services provided, $250/month, when weighed against a good software developer's time, is a good value.
Not really.
Netlify for $9/mo to serve static content over Akamai's network. API Gateway + Lambda + Dynamo for pennies per month when your traffic is low. If you get linked to by HN or some other source of massive traffic, you may pay ~$100 or so, but it will scale up (and back down) with no extra effort.
This setup is basically the same price as the $10/mo Linode for most side projects and will outperform the $250/mo Heroku setup.
At its height, 600 people were daily active users (at a most generous estimate). Unless those 600 people were all active at the same time of day, you'd be able to handle it easily.
People underestimate what good caching can give you. I had an application that would only be able to handle 20/req/second without caching. With aggressive caching, it could handle 2100/req/second so long as that was all reads; and that was true. It handled 40,000 people a day with the $49 dedicated server hovering at 2% utilization in CPU for Postgres, Elasticsearch, Redis, Nginx, and Django Python.
> the time you would spend over the course of a year in maintaining backups and software updates and addressing zero-day security issues
Backups are a once and forget it style process. A simple cronjob can backup to another disk or upload to S3.
Zero-day security issues? They're handled by a managed server host. All kernel level updates are.
And that is how much per month? A quick check with a well known company shows £350/mo. That sounds expensive, but on the other hand I'm not sure I would be leaving my security in hands of a $10/mo shop :)
In other words, you don't pay them so much for what they do every day, but for what you don't really hope never happens.
Well no, but certainly an app that can handle 100K hits per 24 hours.
SSL is essentially free now, not everyone needs wildcard. Backups are easy, analytics are easy. Email is hard - but there are services.
I guess it's about tradeoffs. If you spend a few hours (really, half a day should take care of the above. I've done it!) you can save $250/mo.
If that isn't worth it for you it isn't worth it. 2000K+ a year is definitely worth it for me!
He loaded up too many things.
1 web dyno, the free Heroku Dev DB, SendGrid free starter plan, Google Analytics, and the SSL would run him about $27 ($20 for SSL and $7 for 1 paid Web Dyno so the app doesn't go down every 16 hours).
That's all he needs. $250/mo is OVERKILL that he doesn't need.
Pretty sure this is not a Heroku issue.
P.S. As others have pointed out, this is a simple checklist app. He doesn't even need the SSL add-on until he verifies this is something people will pay for. It's not that serious bro. People can login with their personal info over a normal HTTP connection for now.
The curriculum called for using Heroku but I regret following it now. Heroku bills itself as being easy for a beginner but go ahead and try to deploy any simple Rails or Node project using their guides. Half the time something goes wrong. Either you need extra dependencies or you have to do extra configuration that the setup instructions didn't mention. In the end you have to look up how to check the logs and even if you get that far a beginner has no clue what those logs are really saying. Even as an experienced senior developer, I couldn't get the demo project I was showing them deployed without a ton of hassle and 4 attempts.
So while it may seem like a VPS has a lot more moving parts, it's a better deal overall. Same level of confusion and complexity for students but in the end they at least know a bit about how a server works (which Heroku hides) and it's way cheaper even with SSL. I could have run that same project for $30 up front and $10 monthly.
The asset pipeline in rails use to cause some issues but I think that has all been resolved with the 12 factor gem.
Also setting up a VPS is in no way easier than Heroku. You have to install nginx, ruby, mysql etc. Then you have to setup routing. Then you have to learn all sorts of sysadmin stuff so you don't get hacked. Setting firewall permissions, mysql permissions. Then you want to deploy that app. So you have to setup capistrano or whatever. Next thing you know day wasted.
Heroku?
git push heroku masterThat's not the "right way" but arguably nor is using a Heroku box with no idea what's actually running on it.
For me, Heroku has always been the choice over AWS or Digital Ocean. I haven't had it block me from doing anything I've wanted to do and my monthly bill is around $10 (for multiple sites). For my projects, I could never make a solid argument that moving away from Heroku would actually change the product for the end user in any meaningful way. And with the greater amount of time and energy I would need to focus on a non-Heroku server-side, it would likely slow progress.
I'm just too lazy to switch it over, honestly. I don't think it's a difference between "building it myself" and "using someone else's solution." It's about an hour of setup, maybe 2 if I encounter headaches. I probably ought to do it, given it'll earn me $35-40 per month forever.
It's clear that the author was overspending—even a small dyno with a resource-hungry language like Rails can do a lot of traffic—but there's a lot more than just installing a web server, DB. Firewalls? WAL-E backups? Monitoring (of any kind)? A correct TLS setup? DB security?
Setting those up—in a way that you can replicate if the box is hosed—is a whole 'nother side project unto itself. Learning Ansible, Salt, etc. is great, but if your goal is to build X thing as a side-project, you'll never get anything done in a timely manner if you start reinventing wheels.
Plus, they recommend against[1] enabling backups for I/O heavy VMs (so, databases) because of the copy-on-write implementation and its effect on I/O performance.
I ended up going to AWS because I was tired of having to string together a web of iptables rules (e.g. when you provision a new webserver VM you have to iterate over your Postgres, Redis, HAProxy, Elasticsearch, etc. VMs to poke holes in their firewalls), setup WAL-E and monitoring it / testing backups, setup 3rd party monitoring VM resources for issues (CPU/memory/disk space), having to manage package updates and security fixes, aggregating logs to a 3rd party with rsyslog, all that stuff.
Unless your app is a complete throwaway that you don't care about getting hacked or losing all your data, you quickly have to start worrying about this stuff and it becomes a huge burden to roll it yourself on VPS providers.
[1]: https://www.digitalocean.com/community/tutorials/understandi...
I've attempted a number of times to bootstrap up my apps on DO, AWS, docker stuff, etc - all in anger. The Heroku tax is less than the time spent configuring, maintaining and monitoring my own servers.
In economic terms, this is called opportunity cost. That's time I could spent building features or playing guitar.
It's that they didn't exercise the sort of thrift possible with a website that has no users, and I'd wager that they didn't really know how to since they were a tenderfoot. I made similar mistakes as a beginner, paying too much for too little for things I didn't know I didn't need.
Heroku saves a lot of time for the 1-2 dynos ($25-50/mo) you need to vet your idea. With free Cloudflare SSL termination and a $5/mo t2.micro Postgres database, what else do you need?
For comparison, my somewhat popular forum with 257 online users at the moment and 300k req/day runs on 2 dynos. $50/mo for the application servers + a deploy/config solution is nothing.
This is one of the reasons why web security is as bad as it is.
Even so heroku is not the right choice for this, way too expensive.
brilliant read, one thing I'd modify is ask some/all these questions on signup or login. Tweak enough questions and techniques to ask [0] so as not to discourage. This way you can gain more info as as people use/try/login.
[0] Must be numerous ways to gain info building it into actions of tool.
I assume the reason for not going with DO, Linode or AWS was you're not a devOps guy, which is understandable. We can help you with that.
Personally, for the reduction in admin tasks (which I think people greatly underestimate), improved deploys and rollbacks, and improved uptime about $50 a month is completely worth it compared to a standard server.
I don't know why the monthly bill in the article is $250 though.