Tutorials : Chat

Most Recent Posts

Building a Real-Time WhatsApp Web Clone with NextJS, Supabase, and Tailwind

Launched in 2009, WhatsApp remains one of the most popular communication platforms in the world, helping friends, family members, and community groups stay connected no matter where they’re located or what devices they’re using. With a powerful set of group chat, direct messaging, and audio/video calling features delivered through a simple and intuitive UI, WhatsApp
Read More2 Min Read

Building an Uber Clone in Jetpack Compose

The core functionality of this app is as follows: Basic user authentication and profile management (Chat SDK, FirebaseAuth, Firebase Storage) Autocomplete destination searching for passengers (Google Places) Drivers can view open ride requests which contain details on distance to the passenger and their destination (Chat SDK Channels) Drivers and passengers can communicate during an active
Read More26 Min Read

Building WhatsApp-Style Voice Messages With Swift

Voice messaging is common in popular chat apps such as Telegram, WhatsApp, and Messenger, allowing people to record audio clips and send them to others. This article will explore async voice messaging support in Stream Chat iOS. In the above voice-recording-supported apps, users typically send voice messages through audio attachments. Our iOS SDK has a
Read More9 Min Read

Build a Pixel Perfect Threads Clone in Swift UI—With a Twist!

Whenever a new app arrives, it is a fun exercise to try and recreate its UI to learn exactly how it might be put together. The Threads app UI is pretty straightforward with a few exceptions. The follower “bubble” and profile tab selection is the most interesting UI feature I’ve found in the Threads app.
Read More16 Min Read

Integrating Chat and Scheduling To Transform Online Care Appointments

Head over to our previous article Enhancing Patient-Care: Combining Nylas’ Calendar API with Stream’s Chat API to learn more about Nylas and Stream. Understanding Key Features of the Care Appointment App A remote healthcare provider has the following functions: Log in to the application and specify availability for booking through Nylas' appointment scheduler Check notifications
Read More9 Min Read

Build an App Similar to iMessage with Stream's React Native SDK and NotJust.dev

First, sign up for your free 30-day trial with Stream. Then, you can follow along with Notjust.dev's user-friendly tutorial on designing a real-time chat app that closely resembles iMessage with plenty of room for customization, thanks to our flexible UI kits. Low latency is one of the key features of a messaging app. Stream's Chat
Read More1 Min Read

Integrate Stream’s Automated Moderation Into Your App: A Powerful Content Moderation Solution

Welcome to the Automated Moderation part of Building a Twitter Clone With SwiftUI in a Weekend tutorial series. It demonstrates how to integrate the Auto-Moderation tool into one-on-one or group chat for a safe and protected direct or group messaging experience. You can follow the steps highlighted in this article to moderate the flow of
Read More6 Min Read

How to Create Custom Chat Attachments With SwiftUI

When using Stream Chat, you most likely want tight integration between Stream Chat and the rest of your application. If something is a concept in your product, you want to be able to attach it to a chat message. By default, Stream Chat supports several attachment types already. Images are rendered in a gallery layout,
Read More8 Min Read

How To Build An App Like Uber

We are thrilled to have sponsored Ryan Michael Kay's latest YouTube video demonstrating how Stream's Compose UI toolkit can help you build a world-class chat solution and the complete functionality of an app like Uber! Enjoy this follow along style Android tutorial that highlights key steps and navigates you through the entire process with source
Read More1 Min Read

Getting Started with Auto Moderation

For an organization, it means dedicating lots of time and resources toward detecting and preventing harm from reaching users instead of building your product. For companies like Facebook, this number can be as high as 5% of revenue; for verticals like Marketplaces, it can be up to 10% of revenue. At Stream, we aim to
Read More4 Min Read

Build a Flutter Social Chat with Stream: Bloc and Domain Driven Design

If you want to build an application with the cross-platform framework Flutter, you are in the right place. After gaining some Flutter experience, you may need to build more complex applications. Generally, If you do not consider UI/UX sections, it’s hard to understand and apply communication sections. For instance, If you use the BLoC pattern
Read More11 Min Read

Building a Google Chrome Extension with Flutter and Stream

This is the first thing one sees on the Flutter website, and rightly so. Apart from the conventional form factors like mobile, tablet, and desktop, Flutter has also been run on gaming consoles, IoT devices and unconventional displays which is a testament to how flexible the framework is. This article will explore how to use
Read More11 Min Read

Setting up your Chat environment with Stream CLI

Previously, in Get up and Running With Stream Chat, we looked at how to register your organization, and get an API key and secret for your Stream Chat app. Now it's time to create your first users and channels in this environment. One of the ways of doing that is by using our friendly stream-cli
Read More3 Min Read

The Stream CLI By Example

The Stream CLI is a powerful tool for communicating and debugging your Stream Chat setup with the Stream API. With the Stream CLI, you can quickly work your chat configuration using all of the features that are baked into the Stream Chat Go SDK, including but not limited to modifying chat channels and messages, setting
Read More3 Min Read

Supercharging Conversations With ChatGPT

As a chat company, we naturally wanted to check out OpenAI's ChatGPT model (and have a little fun with it!) by trying to have it act as a chatbot in a conversation between friends. Since ChatGPT does not have an official API yet, our work was cut out for us 😅. Understanding the API The
Read More12 Min Read

Customizing Your Stream Chat Web App With Our New Theming API

Follow this coding tutorial to learn about the new Stream Chat theming API and understand how to customize your Stream chat web app with CSS. Customizing Your Chat Application Creating a chat UI that seamlessly integrates with the rest of your application's design can elevate your user experience. An extensive theming system that allows you
Read More7 Min Read

Using SwiftUI Views: How To Customize Stream Chat Channel List

Stream’s SwiftUI SDK gives developers a modern way to build beautiful iOS chat messaging apps with stateful components. This tutorial guides you to perform significant customizations for the channel list of Stream Chat SwiftUI apps using views injection. You will discover how to swap Stream’s UI components with your bespoke layout and composition. In particular,
Read More11 Min Read

Hive AI and Stream Chat Content Moderation Integration Guide

Billions of users access mobile and web applications every day and generate countless hours of content, from live-stream videos to real-time messages and more. For the teams that build and maintain these services, enforcing some level of content moderation is a must. But, how can you keep up with the constant influx of user-generated content?
Read More13 Min Read

Bringing Anmol Verma's Jetpack Compose Slack Project to Life

Are you a developer working in an organization? If yes, then you’ve probably used Slack before, or at least know what it is. As one of the leading workplace chat apps, millions of teams have adopted Slack and communicate over the platform every day. But have you ever thought about what it would take to
Read More9 Min Read

Theming and Customizing Your Stream Chat SwiftUI App: A Quick-Start Guide

This tutorial describes how to perform configuration-based theming and customization of your Stream Chat SwiftUI app. It focuses mainly on the basics of theming the default look and feel of user interface elements. The example and code snippets provided should give you a vivid understanding of how to get started with changing the visual appearance
Read More8 Min Read

How to Create Custom Reactions in a Compose Chat App

The new v5 Compose Chat SDK provides a ReactionsTypes API that supports more complex reactions, like animated emojis or uploaded images, similar to other social media platforms. Note: The Jetpack Compose UI components are now stable. Check out the full announcement here. You can try out the new SDK in the Jetpack Compose Chat Tutorial.
Read More7 Min Read

Conversational AI Using Stream Chat, HuggingFace, and DialogGPT

With the rise in popularity of applications like the AI companion Replika or language learning apps that offer a way to talk with an AI to learn a new language, you may be asking yourself, “How can I achieve this in my app?” There are different ways to build an AI bot, and there are
Read More6 Min Read

How to Code a Gmail Spaces Clone With React

The Gmail Spaces in-app messaging feature allows Gmail account users to create spaces for long-term conversations between other users. Using Stream Chat and the React SDK from Stream, you will create a clone of this Gmail feature. We will call this stream-spaces 🚀 Application Demo There are many complex and straightforward features in Gmail spaces,
Read More50 Min Read

How to Add a Messenger-like Chess Game to Your Flutter Chat App

Chess – a game as old as time – and yet most people disagree whether the king goes on the right or left. Chess has transitioned from the traditional board and made its way to our screens. It makes quite a frequent appearance in chat applications since most people know at least the basics of
Read More9 Min Read

New Serverside Chat Functionality: Unread Message Reminders

Unread Message Reminders allow you to notify users of unread messages via SMS, push notifications, or email while they are offline. As the latest addition to our Stream Chat feature set, Unread Message Reminders are designed for 1-on-1 chat experiences and are available for all channel types. If you were to build this on your
Read More5 Min Read

Designing a Pixel Perfect iMessage Contacts List in SwiftUI

This tutorial takes you through creating a clone of the iOS Messages application’s contacts list. Designing the contacts list will give you the foundations and basic understanding of compositing interfaces in SwiftUI. A follow-up tutorial and its GitHub repository will show you how to implement the list interface created in this tutorial using the Stream
Read More10 Min Read

How to Use Core Spotlight to Improve Your App’s User Experience

To show you how to integrate CoreSpotlight, we’ll build an app that displays a list of countries. When the user selects a country, a few things will happen: Our app will open a new screen with details about the selected country We will index the selection to the Spotlight API Now, when the user enters
Read More8 Min Read

How Our iOS Team Built the SwiftUI SDK Message List

Apart from the rich feature set, chats need to be very responsive in order to update data correctly based on real-time events, especially in larger chats, such as live streams or group messages. In addition to responsiveness, chats must be quite performant in terms of scrolling, memory usage, and performance in general. These were challenges
Read More7 Min Read

How to Build a Multiplayer Tic Tac Toe Game with In-App Chat

The game of tic tac toe has roots dating back to ancient Egypt in 1300 B.C. Here, developer Pedro Machado, owner of the Youtube channel PedroTech, displays a modern take on the beloved game by adding in-game chat using Stream's Gaming Chat solution. In just under three hours, Machado demonstrates how to create a digital
Read More0 Min Read

How to Integrate Passwordless Authentication into a React Chat App With Supabase

Authentication is a very important part of any application, so it should be implemented in such a way that it delivers a great user experience while keeping your users’ secrets safe. One solution that works well for users and security is passwordless authentication. What Is Passwordless Authentication? Like it sounds, passwordless authentication is a means
Read More27 Min Read

Beginner Tutorial: Build a Discord-Like Application with notJust.dev

Vadim Savin is the CEO of notJust Development, an excellent online resource for those seeking to learn how to code. In this tutorial for beginners, Savin demonstrates how to build a Discord clone application with fully-featured messaging powered by Stream’s React Native Chat SDK with a customized UI to match Discord’s look and feel. Follow
Read More0 Min Read

Learn How to Bring Your SwiftUI App to Life With Advanced Animations

Part three of this tutorial will guide you through creating a splash screen animation, an onboarding animation for an empty messages screen, turn-taking animations in chat messaging, and animating emojis. You’ll use our iOS Chat SDK sample application to get you up and running. Since this is the final installment of our prototyping in SwiftUI
Read More11 Min Read

Adding Global Chat To An Unreal Game

You can have a look at the final result of this tutorial in the main branch of the accompanying GitHub repository, and a packaged version of the game with a few additional features in the latest release of the Stream Chat Unreal Plugin. Prerequisites Before you get started, make sure you've installed the most recent
Read More6 Min Read

UIKit vs. SwiftUI: How to Choose the Right Framework for Your App

Choosing between UIKit or SwiftUI to be your main implementation framework is a big decision. We will explore some of the characteristics of both frameworks and list their pros and cons. So let’s dive right in and help you determine which approach is best. UIKit vs. SwiftUI: Starting a New Project Today is the day.
Read More9 Min Read

Prototyping With SwiftUI: Creating Complex Interactions Using Gestures and Modifiers

In part two of this series, you’ll use our iOS Chat SDK sample application to prototype several gestures that you’ll use for refreshing page content, adding seamless swiping and pagination to message lists and photos, revealing in-app actions to messages in message channels, and more. You’ll also apply modifiers to these gestures so you can
Read More7 Min Read

Creating Animated Message Reactions and Interactions Using SwiftUI

Animated message reactions, like the ones found in iMessage, offer you a way to quickly respond and add your sentiment to a single chat message. In this tutorial, we will focus on making animated message reactions more lively by adding animations to the reaction icons and their container. We will go through the process step
Read More9 Min Read

Customizing the Compose Chat SDK with ChatTheme

To get started, you'll learn how to customize the chat features you build with Stream's Compose Chat SDK. Specifically, you'll work with Stream's Compose ChatTheme component to define these features so that your app truly looks and feels the way you want it to. You can find all the code in this article on GitHub.
Read More5 Min Read

Using Webhooks to Integrate Google Calendar and React

Many chat apps today implement /slash commands for their end-users. When done right, these commands can be both practical and engaging, serving a variety of use cases. For this tutorial, you’ll create a custom /gcal command that will populate your app's chat channel with your upcoming Google Calendar events and call it with a webhook
Read More21 Min Read

Prototyping Stream's iOS Chat SDK Using SwiftUI - Part 1

This tutorial will focus on designing the elements that make up the ChannelListView and ChatsView components. In parts two and three, you’ll build on these components by adding interactions and animations, creating a more seamless chat experience. Resources You can download the Xcode project containing the SwiftUI source code from GitHub to follow along. The
Read More11 Min Read

Building an Avengers Chat Application - Part 2

Before you dive in, make sure you’ve read Building an Avengers Chat Application for Android (Part 1), where we cover foundational concepts like the app’s architecture, Gradle setup, integrating Stream, and more. Once you’ve caught up, you can dive into part two, where you’ll learn to further customize your chat app and add more complex
Read More6 Min Read

Adventures in Tracking Upload Progress With OkHttp and Retrofit

Our original implementation to track file upload progress worked, but it had some in-code usability and UX issues that we wanted to clean up. The following account gives an up-close look into the process we had, the problems we encountered, and what we did to improve. Warning: As this is a story of mistakes we
Read More8 Min Read

Building Custom Message List Items With Compose

The Stream Chat SDK for Jetpack Compose makes extensive use of slot APIs, which allow you to provide pieces of Composable layout that you can then use within one of the chat components provided by the SDK. For this post, you'll use the MessageList component and its itemContentparameter to completely change how message items are
Read More5 Min Read

Stream Authentication Using Flutter, Firebase, and Cloud Functions

Authentication is a basic necessity when building a messaging app with Stream. It helps secure the messaging environment and also provides a customized experience on a per-user basis. Stream uses JWT (JSON Web Tokens) to authenticate users. Generally, to generate and provide these authentication tokens to your app, you need to maintain a backend server.
Read More15 Min Read

How to Avoid Multiple WebSocket Connections in a React Chat App

WebSockets are at the core of every chat app. At Stream, whenever you connect a user to a channel, you create a WebSocket connection. That means for every connected user, there’s at least one connection open. But, did you know it’s possible for a single user to connect multiple times? This is what we refer
Read More5 Min Read

Switching from Interaction Design Tools to SwiftUI

When designing and prototyping touch interactions for iOS devices, designers typically rely on interaction design tools such as Framer, Origami Studio, Adobe XD, Figma, InVision, Flinto, Principle, and ProtoPie. While there is nothing wrong with these design tools, they create an extra step for developers who must translate animations and interactions built with these tools
Read More7 Min Read

How This Developer Built a Messaging App in Just 2 Hours

Building a chat app from scratch can be a difficult, frustrating process that can take months — and that’s just for a bare-bones messaging application with none of the engaging features today’s savvy app users expect. But with Stream’s Chat API, coding doesn’t have to be a huge headache. Stream challenged developer Vadim Savin, CEO
Read More1 Min Read

Sending Custom Chat Attachments With Jetpack Compose

Specifically, this tutorial will cover: What an AttachmentFactory is Creating a custom AttachmentFactory Customizing Stream Compose UI Components Sending custom files as attachments Adding previews for your custom attachment Note: Stream recently announced their Jetpack Compose UI components, which are currently in beta. This follows the announcement of the stable version of Jetpack Compose. You
Read More9 Min Read

Building a Chat App With ChatKit for Android

Did you know you can integrate Stream’s Android SDK with other open-source libraries? To show you just how easy it is, in this tutorial you’ll leverage data from Stream’s Chat API to power the messaging UI from ChatKit. Specifically, this tutorial will cover: Stream Setup Implementing the ChatKit Interfaces Building the Channels Screen Building the
Read More9 Min Read

Instantly Send Audio Messages With Stream Chat and Flutter

Many chat applications today allow users to send voice notes as messages. In this tutorial, you’ll learn how to send voice notes, or audio attachments, in your Stream Chat Flutter app. By the end, your app will feature a chat experience similar to the shown here. This tutorial will cover the following sections in detail:
Read More11 Min Read

Build a Medical Pager Messaging App

Building a chat app that is both feature-rich and scalable can be difficult and time-consuming. But in just under four hours, this YouTube video by JavaScript Mastery demonstrates how to build and deploy a telemedicine chat app designed for a medical or hospital setting using the Stream Chat API. We love this tutorial because it
Read More0 Min Read