So you have an idea for a startup—here's how to build it
Tags: webdev, beginners, javascript, programming
Published: 2021-11-30 11:36:33

So you have an idea for the next unicorn startup and the only thing between you and success is actually building it.

I have been there too and while my side projects never got to a billion dollar evaluation—I learned how to build them. Quickly and efficiently.

After reading this article you will have the knowledge to choose the correct tech stack for your startup that the top 0.1% of companies are using.

## What is Jamstack

The most important factor for startups is to create websites quickly without compromising the development of features added in the future.

There have been numerous website architectures emerging from this need but only one of them has really gotten mainstream attention.

It’s called Jamstack.

Some of the main benefits of Jamstack architecture are speed, security, developer experience, and the ease of scaling.

Just like the technology director at Pac Macmillan—James Luscombe says about moving their tech stack to Jamstack:

> The move to the Jamstack was about speed, accessibility, and taking the worry out of deployment

In this article we will be building a Jamstack based architecture where most of your efforts can be put into actually programming the core business logic of your website instead of having to worry about the boring stuff.

Instead of focusing on individual technologies, I want you to understand the general concepts behind choosing each piece.

## The best frontend

The best tool to build a frontend for startups is Next.js. Even people not so familiar with frontend web development have heard about Next.js

There are a few good reasons for it:

* It comes *batteries included* greatly reducing the time to setup a project
* It has exceptionally low page load times which is great for Core Web Vitals and SEO
* It comes with kick ass features like i18n, routing, server-side rendering, and now middlewares.

If you are not sure if your website's performance is limiting your ranking on search engine results, take my [core web vitals test](https://www.austinshelby.com/resources/core-web-vitals-test) (takes 3 seconds) to check your score.

Instead of having to build a backend just to create a few API endpoints so you can get the data to your frontend, Next.js allows you to directly query data source of your choice from the frontend.

Of course they ingeniously keep this secure by using either static site generation or server side rendering.

Which, as I mentioned earlier greatly reduces development time as you don’t need a dedicated backend.

Instead, you can put your efforts into building a more smart content management solution.

## The best backend

When choosing a backend you have to consider who is going to be using your website and for what purpose.

Do they need a visual interface?

Are they going to be manually entering data?

Based on what we know so far about building minimum viable products we are going to be looking at two different solutions.

* GraphCMS
* Fauna

Again to remind you, the main thing we are looking for is a backend that allows us to focus on the business logic without having to worry about the boring stuff—**greatly reducing the development time**.

### The easiest solution

[GraphCMS](https://graphcms.com/) comes with an easy to use and simple graphical UI that allows non-technical people to add, edit, delete, and publish content.

Unlike most content management systems GraphCMS allows you to also create items programmatically, not only read.

![GraphCMS UI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fv339guqgdruwfgbetgk.png)

As the name suggests, it comes out of the box with a GraphQL API. The documentation is excellent and the very generous free tier allows you to kick-start your business in record time.

It comes with some pro features like localization and remote data fetching to federate content from external sources.

> GraphCMS gives you instant GraphQL Content APIs to create, enrich, unify, and deliver your content across platforms.

### The best solution for speed

[FaunaDB](https://fauna.com/) is the closest you can get to the database without compromising developer experience or productivity.

Simply put, it is the best solution when you need high performance, scalability, ACID transactions and advanced features like streaming.

![Fauna UI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kcmvfuu2nfxmp7eucgj4.png)

Fauna prides itself in *Get started in minutes, without the heavy lift*.

Fauna comes with a graphical user interface but it’s most powerful when used through the API with its own query language FQL.

> Focus on your application instead of managing database clusters, provisioning capacity, creating replicas, or sharding data. Fauna does all the work for you behind the API so that you don’t have to.

## Hosting

Hosting is traditionally considered a very difficult thing to do.

For example—you have to take care of CI/CD pipelines. This includes automated build and test setups. Deployment scripts, rollbacks and all kings of other boring stuff.

The problem of creating all of this from scratch by yourself is that the time spent doing all of that is time NOT spent on building your actual product.

We want a solution that already comes with all of those features.

The hosting solution that I recommend is [Netlify](https://www.netlify.com/).

![Netlify UI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/778yi5xvab3mockk1hwg.png)

Netlify brings tons of features that you love and even more features that you probably didn’t even know you want like A/B testing.

First of all their CDN is globally available meaning people from all over the world can access your website lightning fast.

They are fully supporting the git feature branch workflow that agile teams all over the world love.

They have preview deployments for each branch or pull request you make, making it easy to test your website on every change.

Netlify has a very generous free tier meaning that you can get started without paying a single cent.

## Third party services

Another major thing you have to focus on when building your startups is not reinventing the wheel.

Time is money. So don’t waste it by building something from scratch when an already made solution exists.

Instead of adding an elastic search database to your stack to get full text search, just use Algolia.

Instead of reinventing video streaming and automatic image optimizations and sharing, just use Bunny CDN.

By using third party services you can take the stress out of building your product by not having to worry about coding every little thing by yourself.

## Conclusion

Now that you know why Jamstack won't slow you down when coding your product, you can confidently start to build your startup.

Just like we covered, Jamstack:

* Allows you to focus on programming the core business logic of your application
* Makes your website fast and secure
* Is easy to extend with third party APIs

If you are interested in the actual technical side of building a startup, take a look at [my YouTube channel](https://www.youtube.com/c/AustinShelby) where I teach exactly that—using modern web development techniques.