Building a React Native Telegram Clone with Expo

2 min read
Emily R.
Emily R.
Published May 16, 2024

Are you looking to delve into the world of mobile app development? Ever wondered how to create a messaging application like Telegram? In this tutorial from, you will be guided through the process of building a fully functional messaging application using React Native, Expo, Stream, and Supabase. You'll gain hands-on experience with:

  1. React Native setup with Expo: Get acquainted with the seamless integration of React Native and Expo, setting the stage for building robust mobile applications with ease.

  2. Implementing Stream Chat for messaging functionality: Harness the power of the Stream Chat SDK to implement real-time messaging features, allowing users to engage in dynamic conversations effortlessly.

  3. Integrating Stream Video SDK for audio and video calls: Elevate your app's capabilities by integrating the Stream Video SDK, enabling seamless audio and video calls for enhanced user interaction.

  4. Simple User Interface (UI) design for a chat application: Learn the fundamentals of UI design as we guide you through the process of crafting a sleek and intuitive interface for your chat application, focusing on usability and aesthetics.

  5. Build a Custom Database using Supabase: Take control of your data management with Supabase as we guide you through the process of building a custom database tailored to your app's needs. From data storage to retrieval, Supabase empowers you to handle your data with efficiency and flexibility.

Follow along step-by-step as we navigate through each tool and technology, providing insights, tips, and best practices along the way. By the end of this journey, you'll not only have built a fully-functional chat app but also gained invaluable expertise to propel your development endeavors forward.

Key Insights and Timestamps

Introduction and Project Overview

The tutorial kicks off with a brief overview of the project, outlining the technologies you'll be using and the functionalities you'll be implementing.

Setting Up the Development Environment

Learn how to set up a fresh new Expo project and enable TypeScript to ensure type safety in your codebase.

Implementing Navigation

Navigation is crucial for any mobile application. Follow along to set up Expo Router and navigate between different screens.

Integrating Stream Chat SDK

Discover how to integrate Stream Chat SDK to add messaging functionality to your app, allowing users to engage in real-time conversations.

Authentication with Supabase

Security is paramount. Learn how to implement user authentication using Supabase to ensure that your users' data is protected.

Uploading Profile Pictures and Connecting Users

Enhance user experience by enabling profile picture uploads and connecting users seamlessly within the chat application.

Real-Time Chats with Live Viewers

Explore how to create real-time chat functionality, allowing users to engage in conversations with each other and with live viewers.

Tokens and Authentication with Stream

Dive deeper into authentication by exploring how to generate and manage tokens using Stream, ensuring secure communication between users.

Building a Local Supabase Database

Learn how to set up a local Supabase database to store user data and chat information securely.


As we wrap up the tutorial, we provide some optional dependencies and packages that you can explore to further enhance your chat application.

Whether you're a seasoned developer or just starting out, this tutorial provides a comprehensive guide to building a Telegram-like chat application from scratch. Whenever you're ready for more, check out part two. Connect with on Twitter, Instagram, Facebook, LinkedIn, and Discor, and continue building together! Follow along, expand your skill set, and add this project to your portfolio today!

Integrating Video With Your App?
We've built a Video and Audio solution just for you. Check out our APIs and SDKs.
Learn more ->