Hi all!
I am building exploo.com together with my husband. We have some people on the waitlist and a potential customer with whom we are planning to make a beta test of 2 to 3 months. We hope to get more insights during this beta and the customer becomes our first paying customer.
The product is currently hosted on AWS. I am a backend developer and gained basic experience with AWS - but I am still very unexperienced. We are using the free tier but will run out of it this fall. This means, we will probably need to pay soon although we still don't have paying customers yet.
Our product consists of a static frontend website (written with Vue.js), a dynamic backend (written in Node.js), a database (MongoDB) and an AWS S3 bucket where we store videos. Frontend, backend and the MongoDB database is hosted on an AWS EC2 free tier instance.
I would like to know how you all take care of hosting your product without knowing when you get your first payment. How would you tackle this situation? What are the most common tools here to host the product and limit the pre-front costs? Would you go completely serverless or manage something on your own?
Maybe this is not the right forum to ask. But I am a first-time indie-hacker and don't know the common tools yet. I just know the tools I already use as a professional developer but maybe AWS is too cost-intensive for the first time.
I was in the same position as you a couple of years ago. I started using AWS and when the free tier expired and I got my first bill ($65 for an almost zero-users MVP) I had to find a cheaper and easier to use server.
For the tech stack that you're using, I'll go with:
Hope that helps ✌️
This helped a lot! Thank you very much. What you said about Youtube or Vimeo is interesting. I need to investigate if they have an API and if I have limits for uploads/data transfer and so on. The reason is that our product depends on videos stored at a place and this will probably cost us the most. So I need to find something which is either predictable in costs (after a transfer estimation) or at least I have a generous free tier to experiment with until I have a paying customer (and of course IF I get one :D). But your answer helped me a lot to be more brave towards going serverless.
I think Vimeo can be a good option for you.
For one of my previous projects (Quicktalks.io) I needed to host videos as well and, at first, I opted for cloudflare stream. There is no free tier but the cheapest plan is $9/month if I remember well and it has an API. Check it out as it could be another option if Vimeo is not exactly what you need.
Thanks a lot! I will definitely have a look! My biggest problem with AWS right now is that it's really hard to estimate the costs. I know that there are some saving plans and the more data I use at S3 the cheaper it gets. But since I have no clue at all (and will know this at that time our beta customer uses our product) and want at least something I can start with (a number, an estimation).
AWS has a program for startups called Activate where you can get some free credits and technical assistance. This is in addition to the free tier. Here’s the link:
https://aws.amazon.com/activate/
We signed up for it at my day job and got $1000 in credits.
Also, if you’re able to convert your Node backend to be serverless and run on AWS Lambda it’s very inexpensive (basically free) if your web app has low traffic. Might be worth looking into.
Unfortunately my app has high traffic (when it is going to be used by the beta customer). It will load a video from an S3 and stream it. So the number of invocations is not so high (which is one parameter for Lambda) but the compute time is high (which is I guess another parameter for Lambda). Correct me if I am wrong. I am very new to AWS, especially Lambdas.
Register as a startup with https://vestbee.com and you can get up to $10.000 credits for AWS.
I did it with two of my startups and it helped a lot to start with zero costs for infrastructure.
DigitalOcean have some inexpensive solutions and it is very easy to migrate and setup most of them.
I heard now multiple times DigitalOcean. I think I will have a look on it. Thank you for the recommendation.
Firebase has hosting and their products typically have usage based pricing designed to scale with your app. They have a free tier, so they may fit your needs better https://firebase.google.com/pricing
Thank you. I will have a look on it!
In my daily work, I am using GCP or AWS. However, for the home projects, I usually go with VPS like hostinger.com or similar and spin multiple projects on the same VPS.
The downside for this is that you have to install and set up all the needed services yourself. So you are spending more time on infrastructure preparation which you could spend better working on the project. The good side is that you get to learn more about infrastructure, how to set up everything, and how it works altogether, which makes you a better specialist.
That's true. For my work, I just needed the basics of AWS EC2 but for my side project, I spent a lot of time investigating Route 53, CDN and other AWS products. I also investigate in how to setup an infrastructure well (security and traffic load wise). So this definitely improved my skills :D
Register for YCombinator startup school, you can get credits for $10,000 for AWS. Best way to move forward without disturbing a lot of things.
Google Cloud Platform, AWS, Azure and Digital Ocean all provide solutions for hosting your application as a Docker container so make your basic "unit of computation" your Docker image. This way you will remain agnostic of the infrastructure on which you host.
A lot of people here suggesting using Cloud Functions, but I find that this leads to excessive "wiring" of your application and that inevitably leads to vendor lock in.
As a general rule, I would not suggest hosting your database yourself but instead just use the managed versions provided. For example AWS and GCP has Cloud SQL MySQL, PostgreSQL. Digital Ocean offer managed MongoDB.
If you decide to jump ship you can just grab your container and redeploy elsewhere, so long as you haven't drunk too much of the vendor specific coolaid such as Pub-sub, Auth systems and cloud specific features. Usually porting image storage is acceptable but I wouldn't opt into vendor specific features.
You can still use "free forever" portion of the AWS free tier - Lambda, DynamoDB and some S3 storage space.
Excellent start on your website!
Thanks but I need to forward your appreciation to my husband :D He is very good in frontend stuff. The whole frontend development with its design and texts are made by him. I am responsible for the backend, database and infrastructure. But thanks anyway. I hope that we could deliver the message and our goal.
Unfortunately both my wife and I are backend developers :( However, my son is more full-stack so he helps on the front-end. If you get bored check out my https://www.convertcsv.com/ and https://www.convertcsv.io Best Wishes.
Very interesting tools. I am not working so much with CSV (maybe once per year) but I know that at my workplace we use it a lot! I will definitely promote the tool there :D
On the "run a app as economically as possible" front
Since all of the "app" code is on normal compute, you could move it to another cheaper / free provider.
Storage can also be hosted on compute if really stretched for cash, but storage has a time/money trade off.
Compute:
Free tier: Oracle Cloud
Paid: Digital Ocean, Vultr, OVH
Cheap: BuyVM, Reputable "lowendtalk" vendors
Storage:
AWS S3
Backblaze B2
Look into getting Beta access to Cloudflare R2
DigitalOcean/$othercloud bucket storage
While you are shopping for an infrastructure provider, make sure to check out how well infrastructure as code tooling works with them.
Note that this is extremely dependent on your application. Colocating a server could be cheaper depending on your task.
Bonus tip:
If you are running a high bandwidth app, some platforms give each compute instance a free amount of egress and are paid by hour. Automate deployments and you can get /extremely/ cheap egress.
Thank you very much. This list helps me a lot. My app is in terms of its structure very easy. I don't think that I need to automate a whole infrastructure since I just have two repos and a database. The storage is on S3 so that I don't need to manage it. The only thing what I manage by myself is the MondoDB database and an NGINX server which I use for SSL and a s a proxy. I also want to keep everything as simple as possible since it's our first IH product and I want to spend more time on developing features for our beta customer instead of managing an infrastructure. But let me know if this is a wrong mindset :D
I hosted my products (https://techcater.com) on Firebase hosting with serverless functions. For more than two years, I pay less than $1 / month for running everything.