How to start a tech startup for $0 with Google Cloud Platform and other services stitched together
By: Geshan Manandhar
Tags: Google Cloud Run, Free Services, Startup Life, Startup, Google Cloud Platform

Learn how to start a tech startup with no money. You might think I am joking but I am not. In this no-fuss step-by-step semi-technical guide, I will walk you through the process to start a tech startup.

This guide will not dive deep into the technical details. If you know technical things like how to set up a DNS, dockerize your applications, etc you can glue together a tech startup without reaching for your credit card.

The $300 free credit from Google Cloud Platform for 12 months is key to getting your startup off the ground for around 9–10 months. Let’s get started:

How to start a tech startup

You have an idea for a tech startup in your mind for some time. You have fiddled around and maybe have a proof of concept or even a minimum viable product ( MVP) ready.

Now it is time to get your startup out to the world.

Following the lean startup methodology, you want to see if there is a demand for your product. You also want to know if people are willing to pay for this type of service.

For both the above cases, you will need a brand name and a working website, and/or a web application. This guide will help you get up and running at $0 stitching together the GCP products with its generous free offerings and other free services.

Considerations

You will need to register for a new GCP account and bag your $300 credit that should be used within 12 months. You will have to register for other services as you follow along with the guide. The aim is to run your staging and production applications for ~ $1 a day, so the $300 will last for just over 9.5 months. After that, you will need to find a way to generate money or get more Google Cloud Platform (GCP) credits like from Google for startups or some other way. For this guide, we will consider having a brochure JAMstack website hosted on Netlify all for free of course. The web application will be hosted on Google Cloud Run with the MySQL database on Google Cloud SQL.

It is time to dive deeper into the steps:

Steps

Before we go deeper into the steps, these steps are going to be a bit technical but not deeply technical. These steps are going to be more like pointers than a step-by-step process with screenshots having optimal details. If you have found the idea till now to be interesting carry on:

Domain Name

Your brand cannot exist without a domain name. This is where you might want to spend some money if you are more serious about your tech startup. Still, if you want to go the $0 path here is your option. You can register your domain at FreeNom for $0. You can get domains ending with .ml, .tk, .ga, and.gq.

Get a free domain for 12 months (renewable at $0) from Freenom.com

The good things are you pay $0 and there is no competition as getting a .com or .net. The flip side is you don’t get a “standard” domain as such.

The choice is yours, if you are on a strict budget with $0 I would suggest to get a .ml domain and brand your startup as a “Machine Learning” idea, it has the potential to sell too :).

DNS, security, and caching

The next step after you register the domain is to get a free Cloudflare account. You can then use the DNS provided in your Cloud flare account at FreeNom to direct the website/web application traffic to where you want. In our case, we will like to redirect the brochure JAMStack to Netlify. The web application traffic will go to our application hosted on Google Cloud Run.

Use Cloudflare free plan to manage DNS, security, and caching

For now, be able to log in and “Add a site”. Then Google more about how to use cloud flare to linkup the traffic to respective services. On top of DNS management, you will also get things like caching and security for free with Cloud Flare. Follow this tutorial to link up Freenom with Cloudflare. You will also get free HTTPS with Cloudflare no need to wrangle with certificates and settings.

The Brochure site

Now as you have your basics setup, it is time to get your brochure JAMStack website up and running. You can follow this step-by-step tutorial to get your JAMStack website running without a line of code.

The main glue here is Stackbit. With the recent changes, you could directly go to Stackbit, select a theme, and deploy your website on Netlify. You will also get an easy to use CMS with a WYSIWYG type editor that works not only for text but for images, layout, and configuration of your website.

If your startup is a SAAS product I would recommend using the Azimuth theme. It suits very well for SAAS products and with the click of a button, you can even change the color scheme.

Cement them together

After you have your brochure website running on Netlify with Stackbit. Configure the DNS correctly on Freenom so that the website traffic hits the Netlify website with Cloudflare security enabled.

If you just want to test your idea then you can stop here. With the brochure website, you can start gathering email addresses using Nelify forms. Netlify forms free version has limits so please be aware of it, refer to the Netlify Pricing page. After that, you can figure out if people will pay and decide to more further or not.

Netlify with Netlify forms is a good way to collect leads.

Take note that, for all the above services you have not even spent a penny. So you can run your experiment as long as you want.

If you have already some code and some form of your tech startup working then proceed further to host it with GCP with serverless containers on Google Cloud Run.

Time for Google Cloud Platform (GCP)

Now is the time to get your Google Cloud Platform (GCP) account. This is where you will need to search for your credit card. Even though you will not be charged but Google will take your credit card details. With the Cloud and Cloud Run, be very careful not to over-run it, so tighten your configs from the beginning.

We will be using serverless containers for your application deployed on Google Cloud Run. We opt for serverless containers because of the cost and other reasons. The other reasons mainly include no need to learn a new framework/paradigm and you can run any application as long as it can be containerized.

You will also get free HTTPs and custom domain mapping to point the application back to the FreeNom domain.

With Cloud run you get 2 million requests a month free. After that, it is 0.40 $ per one million requests. Well, the math is not that simple but it is advertized like that. Google cloud run is a lot easier to set up than a full-blown Kubernetes cluster with similar benefits. Know more about it in this talk.

Dockerize your application

To deploy your application, you will need to dockerize it. In this step-by-step guide, you will see how to deploy a PHP Laravel application to Google Cloud Run Fully managed. Following similar steps, you can deploy any application that can be dockerized to Google Cloud Run. Just bear in mind that you choose a lower-cost region like us-central-1 and set max containers to 2 so that you don’t burn the free credit fast.

Actual costs for running a small scale application on Google Cloud Run

With my experience, currently, for an application with both staging and production workloads, it is costing us 10–20 cents a day. This is also going from our free credit.

Database

Just having some code doesn’t make the application work, the heard of most applications is the data. You can store your data in Google Cloud SQL on MySQL or Postgres SQL. This will be your main money hogger.

With the current MySQL pricing, using two db-f1-micro it is costing us 88 cents a day. 44 cents per day for the staging database and the same for the production one. There is an automatic backup setup for the production one.

To save cost, if you can live with a maximum of 5 connections at a time you can choose to use remote MySQL. If you use remote MySQL for staging your daily cost for the database can come down to 44 cents a day.

One important thing is to keep your Cloud SQL instance behind a firewall. Follow the official instructions to connect Cloud Run fully managed services with the Cloud SQL database.

If you use other forms of data storage the costs will vary depending on what you choose.

Other GCP services

In addition to Cloud Run and Cloud SQL, you should use other services to make your life easier. You can use Cloud Build to build your containers. It can be linked with Github and you can start building your containers on each push or with some conditions.

Cloud build has 120 mins per day free. It should be more than enough for a budding startup like yours.

With Cloud build the container images will be pushed to Container Registry. Google Container registry uses Cloud Storage to store the images. Set lifecycle configuration on the cloud storage bucket so that files older than X days can be auto-deleted before it mounts up the cost.

You can also make use of the free VM — F1 micro instance to do small tasks.

We are using it to run a bot built with Hubot. It uses the gcloud command to do things like deploy cloud run applications and display logs over Slack.

So needless to say we are using GCP logging for more visibility on how the application is working, you should use it too.

Of course, GCP has a plethora of services but don’t get into the analysis paralysis mode and get nothing done. We used the above services and our product is running fine. Explore optimally and use the services needed for your product.

Other free services

The following are other free services that will help you build your tech startup:

Github — Github has a free team plan so don’t forget to exploit it. With 2000 minutes for Github Actions you can use it as your CI/CD pipeline too. Trello / Asana — Depending on your project/product management flavor you can use Trello or Asana free version to manage your product development. CodeClimate — To keep a tab on the health of your code you can use CodeClimate free plan with 4 seats. This will be a boon for your tech startup’s code quality. ForwardEmail — Great you have your domain but using a Gmail email won’t work best for your brand identity. Get your info@yourdomain.ml for free with ForwardEmail free plan. Free CDN — If you are serving images or static assets on your website or web application you can use Statically to get the CDN optimizations and benefits. Try it, it is free and unlimited too.

If you know of any other services that can help a budding tech startup please do add them as comments.

Conclusion

You don’t need money to get your tech startup off the ground. If you have the right idea and utilize your tech skills correctly you can get your tech startup started for $0.

I hope you will not let your tech startup idea die and get something running for no cost with GCP and other services.