How to create a Full Stack application using React and Amazon Web Services 🔥

This is a summary of the areas you will need to be familiar with and a collection of resources to get you started.

A thread 🧵👇
First of all - there are many different ways to compose a Tech Stack for a Full Stack application.

With that said, let's start.

Tech Stack:
🔹DynamoDB
🔹GraphQL
🔹AWS Lambda (serverless)
🔸React
🔸Static hosting in AWS S3

Tools:
🔵 AWS Amplify
🔵 Serverless
🔹DynamoDB (1/3)

A managed database provided by AWS.

It supports both key-value entries and documents.
That means that a field can contain a single value, such as a string or a number, but can also contain a document, i.e. a JSON-object.
🔹DynamoDB (2/3)

It's schemaless, so besides a key, it doesn't rely on a predefined schema.
You can think of this as a combination of relational and document-based databases such as MongoDB.
🔹DynamoDB (3/3)

It's fully managed by AWS, so you don't need a server running to host the database.
This enables extremely high flexibility when it comes to up- and down-scaling your solution.

Get started with DynamoDB on AWS website.
aws.amazon.com/dynamodb
🔹GraphQL (1/3)

GraphQL is a query language and an alternative to SQL and MySQL.
With GraphQL we can specify exactly what we need and the relation between the data coming from the backend, all in a single request.

graphql.org
🔹GraphQL (2/3)

AWS has a solution called AppSync which enables you to create a managed GraphqQL layer to securely access, write, and combine data from one or more data sources.

You can link a DynamoDB table as a data source directly, without having to write custom resolvers.
🔹GraphQL (3/3)

AWS AppSync is again fully managed, so you don't need a server running your GraphQL API.
Additionally, you can easily configure authentication based on an API-Token or OAuth 2.

Get started with AppSync on AWS website.
aws.amazon.com/appsync
🔹AWS Lambda (1/2)

AWS Lambda functions enable you to write the entire Back-End using individual functions that run in the Cloud.
This is an extremely powerful alternative to managing and provisioning servers for your Back-End.
🔹AWS Lambda (2/2)

Even though you can link a DynamoDB table as a data source directly using AppSync, you typically need a bit more custom resolver-logic.

Fortunately, you can use Lambda as a data source as well.
This allows us to write custom resolvers when needed.
🔸React (1/2)

React is a JavaScript library for building user interfaces.
It's especially powerful for writing Single Page Applications.

It's very little likely that you haven't heard of it already, but if not, I'll drop a link to their website here.

reactjs.org
🔸React (2/2)

By far the easiest way to get started with a new React App, is not use create-react-app.

It comes with a comprehensive toolchain for both developing, bundling, and shipping your React App.

reactjs.org/docs/create-a-…
🔸Static hosting in AWS S3 (1/2)

S3 is a storage service in AWS.
We will host our application using AWS S3.

After we have used create-react-app to build our React App, we will simply upload it to an S3 bucket where the static files can be accessed.
🔸Static hosting in AWS S3 (2/2)

AWS CloudFront is a blazing fast Content Delivery Network, and we will use this to direct traffic from our domain to the S3 Bucket.

This offers additional capabilities in regards to caching, load balancing, and more.

aws.amazon.com/cloudfront
🔵 AWS Amplify (1/2)

AWS Amplify is a framework that enables us to integrate a lot of the things we have covered so far.

With AWS Amplify we can quickly create a stack, add authentication, add a GraphQL API using AppSync, and host the app using S3 and CloudFront.
🔵 AWS Amplify (2/2)

AWS Amplify is CLI-based and will get you started with a cloud-powered app in minutes (literally).

It will make our lives SO much easier!

docs.amplify.aws
🔵 Serverless (1/2)

The Serverless Framework is a tool that enables us to develop, manage, and deploy Lambda Functions with absolute ease!

It allows us to use infrastructure-as-code for the entire cloud infrastructure.
🔵 Serverless (2/2)

We can set up both DynamoDB, AppSync, GraphQL Schema, and all our Lambdas in a single yml-file.
It's an incredible tool!

serverless.com
Additionally, it can be of great importance to understand where to use caching effectively.

How and where to cache very much depends on the application you're building.
In this article, I cover the different options and the pros/cons for each:

sigmetic.io/blog/serverles…
One of the software products that I'm running, @sigmetic, is built on this Tech Stack.

Additionally, I'm using @direflowjs to create embeddable KPI widgets, thus I call the Tech Stack of Sigmetic the "GRADS" Stack 😎

You can read more about it here.
sigmetic.io/blog/sigmetic-…
The biggest takeaway from this stack, is that it's serverless!

🔥 No need to manage servers.
🔥 Pay-per-use instead of paying for uptime.
🔥 Serverless is inherently scalable.
🔥 Reducing cost.
🔥 Energy-efficient, ultimately better for the climate.

I hope you enjoyed reading.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Simon Høiberg

Simon Høiberg Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @SimonHoiberg

2 Oct
It's Hacktoberfest!
So let's all show some serious appreciation of the hard work of Open-Source projects 🤩

Here's what we're gonna do:

Post your Open-Source project below.
Go through the other projects posted and give them a ⭐ on GitHub.

Simply to show your appreciation!
Remember!
Open-Source projects are FREE.
Amazing developers have put in hours of hard work for the whole world to benefit from.

It's an awesome act of kindness ❤️
This kind of generosity deserves a star, even if you're not personally gonna use it, don't you think?
Start with this thread right here!
This is all amazing work done by amazing people 🤩

And for the rest of you!
Fire away below. Show us your best work 🔥

Read 4 tweets
1 Oct
Alriiiight, Hacktoberfest has started 🎉🎉

Are you all ready to make some contributions to Open-Source? 😍
For sure, I am!!

I've also made some issues ready on my own Open-Source projects 👇
They all have the label "hacktoberfest" under issues.

#hacktoberfest2020 Image
Contributing to Open-Source can be an important career move!
It will signal that you're great at collaborating - a skill that is even more important than being good at coding!

If any questions or problems arrises, my DM will be open.
Happy hacking!
On Twitter API Client

1️⃣ Add tweet_mode parameter
2️⃣ Store credentials per instance to allow multiple clients.

github.com/Silind/twitter…
Read 5 tweets
14 Sep
Tips on writing a good article 💡

Do you find it hard to get the format right?

Keep these in mind when you start writing 👇
Checklist, rules, and recommendations 🧵
(Repost)
Decide on:

☑️ Subject: What are you writing about?
☑️ Target: Who are you writing for?
☑️ Goal: What do you want to achieve?
☑️ Tone: How do you want to come across?
Checklist:

✅ Do you have a short and precise headline?
✅ Do you have an enticing introduction?
✅ Do you fulfill a promise in the conclusion?
✅ Do you have a "tweetable" wrap-up?
✅ Is your language colorful and interesting?
✅ Do you apply pathos/ethos/logos?
Read 6 tweets
4 Aug
Tips on writing a good article 💡

Do you find it hard to get the format right?

Keep these in mind when you start writing 👇
Checklist, rules, and recommendations 🧵
Decide on:

☑️ Subject: What are you writing about?
☑️ Target: Who are you writing for?
☑️ Goal: What do you want to achieve?
☑️ Tone: How do you want to come across?
Checklist:

✅ Do you have a short and precise headline?
✅ Do you have an enticing introduction?
✅ Do you fulfill a promise in the conclusion?
✅ Do you have a "tweetable" wrap-up?
✅ Is your language colorful and interesting?
✅ Do you apply pathos/ethos/logos?
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!