Are you a beginner and always wondered what it takes to build an application like twitter and let others use it on the internet ?

This 🧵 explains it in simple words:

#100DaysOfCode
Any application has a front-end and a back-end.

Front-end is the interface your users interact with. It can be a website or a mobile application.

Backend is the brains of your application which serves data requested from the the front-end.
First step is build a backend for your application. This can developed using many languages and respective frameworks available:

Node / Express
Python / Django
GoLang / Labstack
Java / Spring

Note: Some of these frameworks help you to develop front-end part of you app as well.
You need to store your application data in a database like PostgreSQL, MySQL, MongoDB etc

Database hosting services from Heroku, Mongodb Atlas etc can be used for this.
When you develop applications like twitter you need to cache data to increase the response time by avoiding duplicate queries to the database.

Many caching strategies can be used depending on the use case:

cache aside
read through
write through
write back
Next you need to build a beautiful interface for users to interact with. There are countless frameworks available for front end development.

React.js
Angular.js
Vue.js
and many many more...

If you're a beginner I would recommend using: HTML / CSS / JavaScript / jQuery.
When your application is big, there needs to be front-end optimisations and caching to reduce the page load time. Below strategies can be used for this:

browser caching
minify files
minimise number of request
CDN services (if you have lot of high resolution images)
etc.
Now you have your front-end and back-end code ready and your application is working on your machine. Awesome!

For it to be available for others to use you need to host your application somewhere. Basically run your app on some machine which is connected to the internet.
There are many beginner friendly cloud providers where front-end and back-end applications can be hosted.

Vercel
Netlify
Heroku
Github Pages

There are many big players like AWS, GCP, Azure which are not recommended for beginners.
Deploying applications on these cloud providers can be easily done by following their documentation.

To capture analytics from your application, you can use tools mentioned here: https://twitter.com/sunilc_/status/1281175189116481537
That's it!

Let me know what you think about this thread.
You can follow @sunilc_.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: