Building a SaaS? What kind of hosting/server do you start with?
Hi guys!
I'm starting my first steps with a SaaS idea and thought it wouldn't be good to host it in a standard shared hosting package due to all the limitations involved.
So my next thought was to get a VPS (like DigitalOcean), where I can easily run a server and scale if necessary.
Problem is, there's so much work involved in getting started this way and then maintaining it forever (security updates, etc). And emails? Running an email server it's crazy and probably everything you send will be marked as spam :/
So I was wondering, how do you guys usually get started so that these things don't consume most of your time? Are there any other solutions I'm not aware of?
thanks :)
#tech-questions
I personally use Digital Ocean. Yuum (https://yuum.io) is hosted on Digital Ocean. I have both the website (PHP) and the actual app (Node/React) on Digital Ocean. For emails on Yuum, I'm using MailChimp and Mailgun. I'm not hosting an email server, I'm using Gsuite from Google.
If you want quick, I'd use Heroku but they are more expensive than Digital Ocean. Zeit Now is great too. I personally am a huge fan of Digital Ocean and the one click installs are great.
I also like Digital Ocean, definitely going with it for now. Already have the basics set up :) Curious, what do you use to push your code there? git? ftp?
I use Codeship (https://codeship.com). I do a commit to GitHub and then do a pull request into the main master branch. Codeship picks up the changes and runs my deployment scripts. The Yuum PHP website deploys in 3 to 4 minutes with zero downtime. The Yuum node/react app deploys in 2 minutes with zero downtime thanks to PM2 reload.
I use the free plan which gives you 100 pushes a month. I'm happy with Codeship and I personally don't like FTP.
At Contexted.io we're using Google's Firebase, and are really happy with its functionality. Definitely reduced our time-to-market greatly.
I use DigitalOcean for VMs. The pricing is straight-forward for their resources. I've been using Mailgun for email and have used AWS SES in the past. I prefer Mailgun now. I think the limits on the free tier are higher too, as AWS requires you to use EC2 if you want some of the discounts for that service.
I use Stripe for billing. I looked at using PayPal and Amazons payment service, but Stripe was easier for me to get going with. The examples were clear and they had a client library for what I was programming with, Go.
I'll plug my product, Packetriot, because it kinda fits into this question. I use it serve applications or websites that need to be available/reliable but not necessarily meet the level of a production service (24/7/365).
For example, I host Packetriot (https://packetriot.com) on DO, but I host the blog and analytics from my servers at home using Packetriot to expose them onto the Internet. My blog is a static site and my analytics is Fathom running in a container.
And when I'm testing out an idea for a new website or app, or self-hosting something like Gitlab, I just use Packetriot for that too. It keeps my cloud costs under control.
I use Digital ocean $5 servers and connect them up to https://runcloud.io - overkill for me at the moment as neither are close to using the power of each instance, but keeps it organised!
Runcloud is nice. Do you happen to know the same service, but for Python?
Thanks ;)
Hello!
I ended up using heroku for hosting apps.
It might seem more expensive at first, but amount of things they take care of for you makes it worth the payment.
But it has its own tricks and not convenient for some complex setups, or simply becomes pricey in some cases.
Examples when it didn't work easy enough: a lot of custom domains with SSL (they manage SSL certs for u), or multitenant apps where you need to host a separate instance of app for each client - it becomes expensive.
If you don't have those needs with multiple domains and instance per client then it is a great solution.
Ping me on Twitter if you need to talk about it.
Have a great day!
You can run multiple applications on a single Heroku app.
If they are all in one repo, you can use this buildpack to build them all:
https://github.com/SakuradaJun/heroku-buildpack-multi-subdir.
And then your Proc file would run them all like this:
web: myapp1 & myapp2 & wait -n
I never tried running multiple applications if they are in separate repos, but it's possible too. Not sure if it's worth the effort though.
We use google app engine , great setup with no OPS needed , you can get free credits , the biggest cost is running the sql instance next to it. But less worries about security & uptime
One of the many reasons we're building Budibase. To take away the pains of hosting, app management, backend repetition, etc. Check it out:
Budibase
Premature optimization springs to mind here. Use whatever is quickest for you to get your MVP out. Stick to your comfort-zone unless your MVP demands something out-there. For me, I tend to host my FE on Netlify (push to build and deploy) and my BE on something like Firebase or Amazon AppSync (depending on my requirements). All three are hugely familiar so there's no learning curve or barrier to entry.
Depends which programming language do you use?
If you are just starting and don't want to worry about much, try Heroku or Now.
& postmarkapp for transactional emails :)
All the best!
Hey Nuno,
I'm currently looking at Mailchimp to handle my email automation. I haven't tried it yet, but it looks promising.
Out of curiosity, what would you need to do on the server ? Just deploy your application ? I think a simple VPS would be enough to start, at least for an MVP.
I mostly use AWS for my own needs, but I can see why this may sometimes be an overkill.
Good luck !
Hi! I'm planning to use Mailchimp as well, but I mean email in the sense of receiving and sending individual emails (like [email protected]).
Ah yes. I had misunderstood.
I use Gmail for Business, which allows you to use custom domain.
Quite straight forward to set up. 5$/month though.
There are probably cheaper/free alternatives, but I like Gmail.