< Back to blog
BLOG
August 14, 2023
Creating something new, from scratch is one of the most difficult things you will ever do. Starting up is a journey of highs, lows, and struggles. There are countless ways to do it but there are certain things you have to get right from the start. I want to introduce the thought process I use to create startups that work.
I have built out and grown dozens of startups and doing technical due diligence on dozens more. That puts me in a unique place where I can say that there are certain choices you can make. Some of them will set you up to win and others that will set you up to lose.
This article isn't intended to be a technical deep dive, that is covered in other articles. This article is to give you the mindset to suceed in building out your startup. I'm not going to cover ideation or incorporation, I am going to tell you exactly how you build a cloud based startup that will take you from nowhere and can take you to a million users.
In the beginning God created the heavens and the earth. The earth was without form, and void; and darkness was on the face of the deep. Genesis 1:1-2
The creation narrative in Genesis lays out the two problems that anything new needs to solve. Specifically, that is formlessness and void.
The first problem that arrises when you start something new is that you don't have anything to build on. You will need to create everything from scratch and make the most critical technical decisions before you have enough information to actually make the decision properly.
My approach is to leverage my experience, there are endless technical gotchas that can slow you down, make your company unworkable, or even open you up to be hacked. The reason we built the [Cloud Startup Kit is to make that experience available for free. Even if you already have a cloud architecture, I recommend working through your solution on Cloud Startup Kit and look at what you might be missing.
There are three solid cloud choices for a startup. Amazon Web Services (AWS), [Azure]](https://azure.com), and Google Cloud (GCP).
Generally for most startups AWS is the best choice. Of the public cloud providers it is the most feature rich with a history of good support. The best reason to go with AWS is it has, by far, the most blogs and articles explaining how to do critical things.
Azure is a great choice if you are building AI projects, Microsoft and OpenAI (ChatGPT) are very close partners and the AI tools on Azure are fantastic. I also find it, generally, easier to use than AWS. That being said, it can be harder to find an out of the box solution to your problems than in AWS.
Finally, Google Cloud is my least favorite choice. There are a lot of fantastic and unique products but Google has an unfortunate history of removing support for services. I ran into that at a startup. We had a managed virtual machine we were using, and with almost no warning, Google retired the entire service we had built on. I generally avoid GCP for critical cloud infrastructure.
One of the call outs I would make for everyone is that you need to have a properly built out VPC (Virtual Private Cloud). It's beyond the scope of this article to discuss in depth the whys and hows. A VPC allows you to protect your cloud resources, it helps keep yourself and your users secure.
The other callout is that no matter how early you are, don't rely on EC2s. If you are building your solution on VMs (Virtual Machines) then you are setting yourself up for difficulties in the long term. In short, they are hard to manage, hard to scale, and hard to secure. It's important that you understand that a startup almost by definition won't be able to predict how much computing power it will need. In the modern cloud there are far better tools for a startup.
There are some things that are startup killers. When you are still formless you can make decisions that will allow you to avoid these issues.
The most important thing to avoid is complex data models. It's so easy to get in over your head by making a perfect, normalized database. Not only will that take too long, but it isn't pivot proof. When I am performing the technical due diligence process I look for that, since it is a good sign that the target company isn't going to make it.
In the actual software development I look for a flexible language. If your company is a few months old and you are building everything in Java Spring Boot it is a sign the company won't make it.
The second problem you will need to overcome is that you have: no content, no data, and no users. The problem of no content is the most critical to overcome. Far too many technical founders will dive in to the business logic and start creating database schemas and building a bunch of technical deliverables. This is a huge mistake.
Once you have a basic cloud architecture, so that you can actually provide content to users, the next thing is to create content that users can interact with. It's an old trope but a landing page with your value proposition and a waiting list is far better than nothing. It's psychologically motivating as well, because then people ask what you are working on, you can show them the website.
We include Amplify hosting in the Cloud Startup Kit because it is so quick to get a site up and start getting users and start on your SEO journey.
This brings me neatly to one of the core tenants of startup architecture, that is, "Engineer for the pivot." There has never been a successful startup that didn't have at least one pivot. A pivot being where you change a critical part of your system. Pivots come from a lot of places, user feedback, technical necessity, market changes, and the list goes on. Regardless, you need to assume that you will pivot. In a perfect world you're first pivot should happen very early. If you follow this advice and get a landing page up early and clearly explain your value proposition then you should be able to get users or at the very least friends to give you feedback. You need to understand your market as early as possible so that you can meet the demands of your users. It is 1000x easier to correct the ship early on tan after you have built out an enormous system.
Try to get solid negative feedback early, you want people to poke holes in your concept, then you can rework, or rethink things before you have put hundreds of hours of work into going the wrong direction.
You should always start with something already built. Material UI templates are everywhere and inexpensive. You can expect to save yourself weeks of work right at the start by picking a good template. You should look for templates that are recently updated, have Next 13 support, and are close to the look and feel you want.
It's ok, to do very early build outs on Wix but I advise you to have a web app build out as an early deliverable. Any sufficiently complex startup will need to be able to develop their frontend directly and at some point will reach the limit of any website builder. I also recommend staying away from Wordpress since it scales poorly and has a lot of operation overhead.
One of the things we push for really hard with our clients is to not schema your data too early. I can't tell you the thousands of wasted hours I've seen on premature schemaing. It may seem like a great idea to get your data solid early, but it is a trap.
I worked on a startup that spent months making databases and models. They built a beautiful database. But then, a major pivot came up that rendered the entire data model useless. Months of hard work rendered useless!
In order to save the startup I replaced the database and backend with a single Dynamo DB. I worked out all the relationships in simple lambdas. Months of work torn down and replaced in days. It is critical as you create your company that you don't wall yourself into a corner.
Another early issue is not having a Virtual Private Cloud (VPC) setup properly, you will absolutely need one. It both secures your data and forces you to build your cloud environment correctly. It's also critical if you have any intellectual property that you need to protect.
We love to build stuff here at CloudSolutions Plus! If you are starting up or thinking about starting up we wish you the best of luck, and God's blessing over you.
If you have any questions please reach out. lane@cloudsolutionsplus.com. We are here to help, even if it's just to answer a couple of questions over email.
@lane-thompson