Want to know how I grew rapidly as a developer? I took popular apps, and made a lot of research about how they built their app, and how I would build a clone with today's modern technologies. I have learnt tons this way.
Here's how I would build a Youtube Clone today


1.
Databases: Apache Cassandra (amazing alternative to MongoDB) is built for scale and can handle millions of writes per second as we scale. Redis would be perfect for storing tiny pieces of data that change fast such as likes, views, upload progress and queue jobs.

2.
Frontend: ReactJS has proven to scale really nicely with application size. I'll add Next.js for server-side rendering of pages. Tailwind CSS would be perfect for styling, since we can style the whole thing with literally 25kb of CSS.

3.
Backend: Node.JS can handle it ! So Fullstack javascript all the way
. We will also be able to use Node.js to stream uploads directly to third-party services, so that's awesome. It's fast, scalable, and we can deploy easily to any cloud.


4.
Videos: The biggest pain. First I'll stream all uploads from Node.JS to AWS S3. When the file is uploaded to s3, a lambda will pick it up and send to AWS MediaConvert. This will convert the file into streamable .m3u8 format. Can be 2 conversions or 6, depends on the ...

...file uploaded. During the Upload, the Lambda can send API calls to the NodeJS backend so we show the progress to the user. Once the upload is done, the Lambda pings us again.
5.
Deployment: Github actions for continuous delivery, Kubernetes for the backend, and managed Cassandra and Redis instances somewhere in the cloud.

6.
Liked it? Try it out. Pick an exciting project. Plan out how you'll build it with the technologies you know and share with me !
Thank you for reading this far
Got better ideas on how to build a Youtube clone today ? Share your ideas below

Thank you for reading this far

Got better ideas on how to build a Youtube clone today ? Share your ideas below
