In this short tutorial, we will examine the steps involved in creating your first application on Stream. We will create a new account, select a product and API key, and learn the basics of your first API call.
Creating a New AccountÂ
On Stream, a single account gives you access to all products, Chat, Activity Feeds, Video, and Moderation. To create a new account, head over to our account creation page and enter your email and password, or sign in with one of our social accounts like Google or Github.
Before heading to the dashboard, the sign-up flow will ask you to select the main product you want to use in your application. Of course, you are free to use multiple products or mix and match, but we recommend selecting the one that most closely matches your use case for a highly personalized onboarding experience and support flow should you encounter any issues.Â
As a developer-first platform, Stream products are free for individual developers with generous free tiers across Chat, Activity Feeds, and Video. For the most up-to-date pricing information, please refer to our pricing page.Â
Creating a New ProjectÂ
After landing on the Stream Dashboard, you can perform a few actions:
- Create a new applicationÂ
- Invite team membersÂ
- View your monthly usage summary
When creating a new application, you will be prompted to give your application a name and select a location for your app's server location for both Chat and Feeds. Changing these properties after the fact is impossible once these properties are set.
If you already have an application on Stream, you can choose to clone that application as a starting point instead of creating an entirely new one.
We recommend creating two applications, one for development and testing with slightly open permissions (such as using a development token for testing) and a hardened application under "production" mode with refined permissions and access control.
You will be taken to the app overview screen when your app is created.
Chat Dashboard Overview
For customers building with Chat, the main chat overview page lets you quickly view API keys and secrets associated with your application. On this page, you can also configure custom webhook URLs for listening to and reacting to custom events on your API, such as responding to message reminders.
On the right side menu, we have dedicated pages for configuring channel types, configuring push notifications using a push provider, and exploring usage metrics such as the number of MAUs, messages sent, etc.
The "Explorer" tab allows you to quickly view the current users, channels, and messages stored under your application, while tabs such as "Logs," "Webhook & Push Log," and "Roles & Permissions" can be used to audit various errors, webhook events, and access controls on your application.
We recommend reading our dedicated permission and security guide to learn more about Stream's permission system.
To integrate chat into your application, visit our SDK pages to select the most relevant framework.
Video Dashboard OverviewÂ
Using Stream, developers can create three types of applications from a single API/SDK:
On the Video dashboard, developers can quickly test their video apps by creating a call directly on the web and joining in from their client-side application. We recommend using this flow to test and iterate on your video development quickly.
API keys and users are shared across both Chat and Video products. This means that if you have an app for Chat and would like to add Video, the same API key and token will work for users on both products.
Using the menu on the right, developers can easily configure the default behavior for our call types (default, audio_room, livestream, development) or create their own custom call type with features such as RTMP, HLS, backstage mode, etc., tailored specifically for their use case.
Like our Chat product, the "Explorer" tab lets you quickly view the current users, calls, and recordings stored under your application. Tabs such as "Logs," "Webhook & Push Log," and "Roles & Permissions" can be used to audit various errors, webhook events, and access controls on your application. For a detailed look at our permission system, please refer to our written documentation.
With Video, we included a comprehensive suite of tools under the "Stats" tab to help developers quickly debug issues in their video applications. These tools are included in our Video API at no extra cost.
Using stats, developers can easily view the quality rating of a call and select individual calls to view detailed information such as the average call latency, jitter, duration, and number of edge servers used.
The event timeline also provides a full sequence of events from the call, including key moments such as when a user joined the call, started speaking, shared their screen, or experienced high latency or jitter, as detected by our backend.
By default, all calls on Stream run on our global edge network. Regardless of your customer's location, they will always be connected to the closest server to ensure the lowest possible latency and jitter while speaking.
To get started with Stream Video, choose from one of our many client-side SDKs, including React, React Native, Android, iOS, or Flutter.
Activity Feeds Dashboard OverviewÂ
Activity Feeds allows you to easily create, personalize, and scale user connections in your application. Whether you're building a social network or simply have a dynamic timeline in your application, our Feeds platform abstracts the complexities and allows you to focus on the parts of our app that differentiate you from the competition.
When building with Feeds, our Dashboard consists of three main parts. The overview screen (pictured above) shows high-level information on your app's key parts, such as the number of API calls, API Keys, and the ability to configure real-time Feed updates.
Unlike Chat and Video, user objects are not shared with Feeds, meaning you would need to generate a dedicated token for Feeds users in your application.
On the right side panel, users can configure their Feeds Groups, browse the data currently stored in their application via the "Explorer," or examine the app's logs and usage data.
Like our Chat and Video APIs, Stream ships with predefined groups such as Flat Feed, Aggregated Feed, and Notification Feed. However, users can define their custom Feed types that can be used across their applications.
Since Feeds tends to have many nuanced concepts, we always recommend developers check out our Feeds 101 guide before jumping into the code!
To get started, please check out our backend SDKs, which include NodeJS, Python, Go, and Java.Â
Wrap UpÂ
We are excited for you to try our API and bring rich real-time experiences into your application. Please let us know how your integration progresses. Our team is always keen for feedback on ways we can continue to improve our APIs and SDKs.
Should you encounter any problems, please create a ticket on StackOverflow or contact our support team if you are on a paid plan.