profile

notJust.dev Newsletter

🚀 AI, Audio & Video Calling, Data Scraping. What’s next?

Published 7 months ago • 4 min read

notJust.dev Newsletter 🚀

Stay up-to-date with the latest technologies and become a better developer

Hey notJust Developers,

Hope you are having a productive week 💪

This month I had the opportunity to explore a lot of new things in the dev world. We live we learn 📚

I know you are busy, and everything in our industry moves so fast. That’s why, In this email, I want to summarize some of the things that I am excited about, and how they can help you.

  • Audio & Video Calling
  • Data Scraping
  • AI Recommendation System

Audio & Video Calling

Video calling was by far the most requested tutorial on our channel. Almost all social media and messaging apps have audio and video calling features.

However, implementing a robust video calling infrastructure is quite challenging even for a senior developer. There are a lot of moving parts, both on the backend and on the front end and it requires a lot of specialized knowledge about real-time data streaming.

That’s where third-party solutions really help.

Last Friday, we started building the Facetime clone in React Native, and in just 1 hour, we had a working prototype of the Video Calling feature in our app. With all the features you would imagine audio and/or video calls, 1-on-1 and also group calls, all the controls you need to manage your microphone and camera. It even has screen sharing.

All this magic is powered by the new Audio & Video SDK from Stream.

You can watch the implementation tutorial on our YouTube channel.

video preview

Data Scraping

When we need data that is not available through an API, web scraping is the solution.

There are a lot of use cases where data scraping can help you:

  • Price aggregators for e-commerce platforms like Amazon, eBay, etc.
  • Price tracking & notifications for real estate
  • Travel aggregator for the best prices for hotels, flights, car rentals, etc.

I wanted to experiment more with data scraping, and I built a flight price comparison app. Behind the scenes, I scrape websites like Skyscanner for the best deals and display them in a user-friendly mobile app.

The most challenging part about data scraping is not getting blocked by the website you scrape. If you run a scraper from your IP, and it makes a lot of requests to the same website, it won’t take long till you are blocked. To overcome this problem, we should run the scraping jobs from different IP addresses. These are called proxy networks.

I used BrightData’s Scraping Browser, which runs on top of a large proxy network and I simply connected to it using Puppeteer - an open-source library for data scraping.

video preview

If you want to build the Flight Price Tracking app yourself, check out this tutorial:

BrightData sponsored this tutorial, and they are offering $15 free credits to all notJust Developers when you sign up with our link: https://brdta.com/notjustdev

AI Recommendation System

Supabase challenged me to build an AI-based app, and I decided to build a movie recommendation system. But not a simple one. I wanted to build a smart recommendation system that would understand human language. It’s something like a ChatGPT for movies.

For that, I had to build my own knowledge graph that will power the AI.

I found a huge database of around 50k movies. It had information about the title, genre, description of the movie, etc.

The problem is that the AI does not understand human words. It understands numbers - usually in the format of vectors (an array of numbers). These vectors are called Embeddings and are at the core of NLP (Natural Language Processing) models.

In other words, Embedding is the representation of any text in a vector format. By comparing 2 vectors, we can determine how similar 2 strings are.

For example, if we plot a 2-dimensional vector of 3 sentences:

  • The cat chases the mouse
  • The kitten hunts rodents
  • I like ham sandwiches

We will see that the first 2 vectors are quite close to each other, and they are quite far from the third sentence. Even though the first 2 sentences contain completely different words, they have the same meaning, and the vector embedding can help us find this similarity.

Getting back to the practical side, what I did next was I generated the Vector Embeddings of the description of all the movies using open-source models and saved the vectors in the database using Supabase Vector.

Having the vector embeddings of all movies in the database, we can recommend similar movies based on a particular movie. With Supabase Vector, we can easily query vectors and find the items that are most similar.

This is powering the “similar movies” on the movie detailed page in the app.

The next feature I wanted to build, is the semantic search, or the ChatGPT for movies. I want the user to write a prompt, and the system to recommend him movies based on it.

To implement this, we had to first take the user input as a string, generate a vector embedding for the user input, and then query the movie to find the most “similar” vectors in the database. Those are the movies closest in meaning to what the user is searching for.

It was actually easier to implement than I was expecting. If you are interested in AI, I recommend following the tutorial and implementing it yourself.

video preview

🔴 Join me live

This Friday we will build your own video calling application. It's going to be a tutorial packed with value, so set a reminder and don't miss it out 👇

video preview

Count down to 2023-10-27T14:00:00.000Z

🔥 Press worthy

♻️ NodeJS v20 was released as LTS. If you are still on v12, it’s probably time to upgrade

🐞 Network debugging with Expo

Bun 1.0 vs NodeJS performance benchmark

Did you learn something new today?

If you found this email valuable, forward it to one friend or coworker that can benefit from it as well. That would be much appreciated 🙏

Vadim Savin

Helping you become a better developer together with the notJust.dev team

113 Cherry St 98104-2205, Seattle, WA 98104-2205
Unsubscribe · Preferences

notJust.dev Newsletter

by Vadim Savin

Stay up-to-date with the latest technologies and become a better developer

Read more from notJust.dev Newsletter

notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, Exciting news in the world of React Native Animation: The Skia team recently published React Native Skia version 1.0, a significant milestone achieved just 3 weeks ago. In this first-ever stable release, they’ve unveiled 5 super exciting features and enhancements. Rich Text Layouts using the New Paragraph API New Animation Hooks The Atlas API for rendering multiple...

about 1 month ago • 9 min read

notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, Last week, I rebuilt the nice Apple Wallet Card animation in React Native using React Native Reanimated and React Native Gesture Handler 🧑💻 In this issue, I want to break down the animation and show what’s possible. I hope this will give you some ideas of interesting animations you can build in your apps. This issue is sponsored by App.js Join us at the 4th edition of...

about 1 month ago • 4 min read

notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, A lot of exciting things are happing in the React Native world. But today, I want to focus on 3 things that caught my attention in the last weeks: How React Strict DOM is reinventing cross-platform development The retirement of App Center and CodePush, and what are the alternatives How does the new EU Digital Services Act affect mobile developers Sponsored by IBM StepZen...

about 2 months ago • 3 min read
Share this post