Home / Companies / Stream / Blog / January 2020

January 2020 Summaries

23 posts from Stream

Filter
Month: Year:
Post Summaries Back to Blog
Ionic is an open-source framework that enables the development of cross-platform applications for iOS, Android, desktop, and web using a single code base. Initially compatible only with Angular, Ionic 4 expanded its framework support, now offering official integrations with Angular and React, and plans for Vue. This tutorial demonstrates building a group messaging chat application using Ionic 4 and React, integrating user authentication and chat functionalities via the Open-Source Stream Chat API. The setup involves installing necessary software like Node.js, npm, and MongoDB, and creating a server with Express and MongoDB to handle user authentication and token generation. The tutorial further guides through setting up an Ionic React app with Capacitor for native functionality and integrating Stream's Chat JavaScript SDK and React components to establish a chat interface. The process involves creating UI components for user registration and login, and once authenticated, users can access a fully functional chatroom. By employing Stream's ready-made React components, developers can incorporate advanced chat features efficiently, and the application can be readily deployed across multiple platforms without altering the code. The complete project's source code is available on GitHub for further exploration and development.
Jan 27, 2020 1,737 words in the original blog post.
Cloud messaging services enable developers to send messages between servers and client applications, utilizing reliable cloud messaging providers like Stream to deliver messages efficiently. Stream is highlighted as an enterprise-grade feed and messaging API provider that offers scalable chat solutions with a 99.999% uptime SLA guarantee, making it suitable for building white-label chat platforms that do not display vendor branding. This allows companies to maintain control over their user experience and scalability without revealing the underlying service provider. The advantages of using Stream Chat over creating a custom chat solution include cost-effectiveness, ease of deployment, and faster integration with a variety of platforms and languages, facilitated by extensive SDKs and libraries. Deploying applications with Stream Chat is streamlined, supporting various hosting platforms for both frontend and backend solutions. Despite competition in the white-label messaging space, Stream Chat is favored for its usability and robust infrastructure, offering a free 28-day trial to explore its capabilities without commitment.
Jan 27, 2020 810 words in the original blog post.
In the third part of a tutorial series on building a full-stack application with Flask and Stream, the focus is on creating user models and setting up permissions. The tutorial walks through the installation of several Flask extensions, including Flask-WTF for form handling, Flask-Login for user authentication, Flask-Mail for email functionalities, and Flask-Migrate for database versioning. It details the setup of a `User` class with functions for password management and email confirmation, as well as a `Role` class to manage permissions for different user levels, such as users, moderators, and administrators. The tutorial also explains how to configure a decorator function for permission checks on routes and introduces the use of Flask-Migrate to manage database changes. The tutorial concludes by setting up a basic landing page using Flask's Jinja2 templating engine and providing a brief overview of the next steps, which include generating and validating confirmation tokens for user registration.
Jan 24, 2020 1,789 words in the original blog post.
The tutorial series continues with a focus on building a full-stack application using Flask and Stream, guiding readers through setting up the project's initial structure and familiarizing them with Stream's core concepts. It begins with creating a project directory and setting up a virtual environment to manage Python packages, then moves on to installing essential libraries like Stream-Python, Flask-Bootstrap, Flask-SQLAlchemy, and Flask-Moment for different functionalities such as data storage, template styling, database communication, and timestamp conversion. The tutorial explains the types of feeds provided by Stream—flat, aggregated, and notifications—and their roles in organizing user content and enhancing user interaction. It further details creating the app's foundational files and structure, including setting up extensions, initializing the app, and creating blueprints for managing routes. Additionally, it discusses configuration management for different development environments and provides a basic sanity check using a "Hello World" endpoint to ensure the setup is functional. The series promises to expand on user management and permissions in future installments.
Jan 23, 2020 1,550 words in the original blog post.
The tutorial provides a comprehensive guide on building a chat application using Stream Chat, AWS Lambda, and Node.js, demonstrating how to process webhooks to send messages to a Slack channel. It covers the creation of both a serverless backend on AWS and a React Native frontend, detailing the setup process from obtaining Stream Chat credentials to configuring Slack webhooks. The server-side implementation includes creating HTTP routes for user authentication and message notifications, while the client-side involves setting up a React Native app with two screens for user login and chat interaction. Emphasizing the integration of webhooks for real-time notifications, the guide illustrates how to deploy the serverless function and connect it to the Stream Chat dashboard to automate Slack notifications whenever a user sends a message in the chat application.
Jan 23, 2020 1,840 words in the original blog post.
The author describes a project to develop a new social media platform called Offbrand, aiming to integrate social media and group chat functionalities into a single experience. The project seeks to address common issues with current social media platforms, such as privacy concerns, intrusive ads, and the prevalence of bots. Having developed a basic version, the author encountered challenges like latency and chat integration, which were mitigated by utilizing Stream's low-latency data storage and feature-rich chat services. The platform will allow users to create and follow collections of content, primarily web links, displayed as URL previews in a timeline feed. The tutorial series will guide readers through transitioning the site to include Stream as its core, rebuilding it in React, and covering aspects like application structure, authorization, content management, styling, and deployment using Flask. Emphasizing hands-on learning, the author encourages readers to avoid "tutorial-hell" by writing their code and implementing their security measures for production settings. The series serves as a practical progression for those familiar with Flask, offering insights into integrating Stream into Python-based applications with tools like Zappa for AWS deployment.
Jan 23, 2020 819 words in the original blog post.
API gateways like Kong simplify the management of microservices by handling administrative tasks, allowing developers to focus on building features. This tutorial demonstrates the creation of a live chat application using Stream Chat and a backend microservice managed through Kong's API gateway. The setup requires Docker, Node.js, and npm or yarn, with Svelte for the frontend and Express for the backend. The process involves registering a Stream account, setting up Kong with Docker, and configuring the microservice to work with Kong by establishing a Docker network and database. The backend microservice is built using Express and includes endpoints for user authentication and server status checks. The frontend, developed with Svelte and styled using Tailwind CSS, connects to the microservice via Kong, facilitating user login and chat functionality. The tutorial includes steps to configure environment variables, CSS preprocessing, and routing requests through Kong, concluding with a demonstration of the chat app's functionality.
Jan 22, 2020 2,592 words in the original blog post.
CSS-in-JS solutions, particularly styled-components, have gained popularity among front-end developers for their ability to colocate style definitions with React components, enhancing reusability and facilitating the creation of design systems. Styled-components offer benefits such as eliminating globally scoped selectors, enabling out-of-the-box Sass syntax, providing dynamic styling through props, and integrating theming with React's Context API. Despite these advantages, challenges include a learning curve for developers accustomed to traditional CSS, difficulties in integrating with legacy CSS, and potential performance issues in large applications due to increased HTML file size and dynamic class name generation. While styled-components provide a modern approach to styling with reusable and adaptable definitions, traditional CSS remains universal and unopinionated, offering ease of use and performance benefits through browser caching. Developers must weigh these pros and cons when deciding between styled-components and traditional CSS stylesheets, considering factors such as team familiarity, project requirements, and the long-term viability of CSS-in-JS solutions.
Jan 20, 2020 2,737 words in the original blog post.
Webhooks are a powerful tool that allow applications to respond to events in real-time by sending data to a specified endpoint when certain events occur, unlike API requests that require a manual trigger. This tutorial illustrates how to implement webhooks in a Stream Chat application to enhance functionality by sending emails to offline users when new messages are posted. It involves using Ngrok to expose a local server to the internet, setting up webhooks via the Stream Chat dashboard, and utilizing Laravel's mailable class and Mailtrap for email management. The process includes creating a specific route to handle incoming webhook payloads, checking for specific events (like new messages), and sending emails to offline users, thereby enriching the chat application experience. The tutorial also provides guidance on setting up the necessary environment and tools, such as cloning the chatroom application from GitHub and configuring necessary services, which can be applied to more complex applications.
Jan 17, 2020 1,056 words in the original blog post.
Building and deploying a React Chat application using Stream's Chat API involves a few key steps, including setting up a React app on Netlify and a Node server on Heroku. The process begins with creating an account on Stream to obtain application access keys, followed by setting up a MongoDB Atlas cluster for storing user data. After configuring database access and capturing the connection string, the Node server is deployed to Heroku using the Heroku CLI, where necessary environment variables are set. For the React application, a Netlify account is created, and the Netlify CLI is used to deploy the application after adjusting the App.js file to point to the Heroku server URL. The deployment utilizes Git for pushing code to Heroku and offers automated build support for a more efficient workflow, allowing the chat application to be tested via a draft URL before pushing to production.
Jan 17, 2020 686 words in the original blog post.
Stream initially developed the "virtualgo" (vg) library to address the lack of effective dependency management in Go, which was a significant concern when they transitioned from Python to Go for their backend infrastructure. As Go has evolved, particularly with the introduction of native Go modules in version 1.11, many of the previous challenges related to dependency management have been resolved, offering features such as semver enforcement, immutability, and a checksum database. Although initially hesitant due to limited library support, Stream was able to fully migrate to Go modules by mid-2019, simplifying their development process and eliminating the need for certain build optimizations. While vg will remain available on GitHub, Stream encourages developers to adopt Go modules for their superior functionality and community support. The transition was straightforward for Stream, leveraging the go mod tool to convert dependency manifests from their previous setup with vg and dep.
Jan 16, 2020 730 words in the original blog post.
The tutorial provides a comprehensive guide on building a serverless customer support chatbot using React, Azure, and Stream's chat API. It is structured into several parts, beginning with creating a customer-facing chat interface using React, followed by setting up an agent dashboard to manage multiple conversations. The guide also covers integrating Language Understanding Intelligent Service (LUIS) by Azure for intent recognition, enabling the chatbot to understand and respond to specific user queries. Additionally, it explains how to set up webhooks via Stream to connect the chat interface with Azure's serverless functions, which handle data processing and automated responses. Throughout the tutorial, the user is encouraged to configure a development environment, utilize provided code snippets, and access a GitHub repository for reference, ensuring a practical and hands-on learning experience.
Jan 14, 2020 4,305 words in the original blog post.
White-label chat services are chat solutions provided by vendors without any vendor-specific branding, making them customizable for various use cases across different industries. These services can be categorized into general-purpose chat and messaging APIs, customer support chat widgets, open-source team communication tools, and chatbot AI integrations. General-purpose APIs like Stream, SendBird, and PubNub offer versatile chat experiences suitable for enterprise use, while customer support widgets such as Drift, Intercom, and SnapEngage are tailored for support and sales contexts, with pricing often based on the number of agents. Open-source solutions like Rocket.Chat, Mattermost, and Zulip allow for team collaboration but can incur high development costs due to their open-source nature. Meanwhile, AI chatbots provided by services such as Dialogflow, LUIS, Lex, and Rasa offer an automated way to map text messages to intents, although their effectiveness depends on industry-specific training data. Each category comes with unique features and pricing structures, allowing businesses to select the best fit for their needs.
Jan 13, 2020 2,270 words in the original blog post.
Many modern applications use notifications to alert users about important updates, such as new messages, similar to platforms like Slack and Facebook Messenger. This text guides readers through implementing web notifications in a React application using the Web Notification API, particularly for applications built with Stream Chat. The process involves cloning a React project from GitHub, modifying the application to request user permission for notifications via the Notifications API, and displaying notifications when new messages arrive. The tutorial provides specific code modifications to ensure that notifications are only shown when the message sender is not the current user, using the Notification() constructor to present the message details. The tutorial emphasizes the importance of checking for browser compatibility with the API and offers open-source code accessible on GitHub for further exploration and implementation.
Jan 13, 2020 873 words in the original blog post.
In 2019, Stream and Ionic experienced significant growth, prompting Stream developer Nick Parsons to discuss future trends in the cloud space with Ionic's CEO, Max Lynch, and Stream's CEO, Thierry Schellenbach. They forecast a shift towards higher-level components and serverless computing, with more companies leveraging specialized APIs, and highlighted the increasing influence of frontend developers in cloud technology decisions due to the commoditization of backend infrastructure. React is predicted to remain a dominant framework, bolstered by its extensive ecosystem, though specialized tools like Stencil may emerge. While no-code platforms are seen as promising for specific applications, they haven't yet met broader expectations. Both CEOs noted the challenges and opportunities of building startups outside the Bay Area, emphasizing sustainable growth and cautioning against excessive capital raising. Ionic's unique positioning in enterprise and open-source markets is seen as advantageous, and both companies are focused on expanding their offerings in 2020, with Ionic continuing to emphasize web technology and Stream enhancing app developer ease through reusable components and improved SDKs.
Jan 10, 2020 1,309 words in the original blog post.
In 2019, Stream faced challenges with its outdated and difficult-to-update documentation for Feeds and Chat, prompting a search for a modern content management system (CMS) that could support multi-language code, real-time collaboration, and white-label functionality. After exploring various CMS options like Contentful, Django CMS, and GitBook, none fully met their needs until they discovered Slate, a customizable framework built with React that allowed them to create a robust CMS tailored to their requirements. By leveraging Slate's plugin ecosystem and integrating it with Django REST Framework for the backend, Stream successfully developed a functional and visually appealing CMS featuring real-time collaboration, custom editor blocks, and advanced content serialization. This innovative solution enabled seamless documentation updates and improved team collaboration, showcasing the potential of Slate for building custom CMS platforms.
Jan 10, 2020 1,313 words in the original blog post.
Stream's Chat API enables the creation of custom messaging solutions using a JavaScript Chat SDK, which requires backend support for JWT token generation and user authentication. The guide explains deploying a Node.js API using MongoDB and ZEIT Now, highlighting necessary steps such as setting up a MongoDB Atlas database, configuring cluster security, and creating a Stream Chat app. It details the process of deploying the project with the Now CLI, including setting environment variables securely with Now Secrets and using a configuration file to manage project settings. The deployment results in a serverless application accessible via a unique domain, allowing developers to prototype and test their chat applications efficiently.
Jan 10, 2020 1,308 words in the original blog post.
Stream offers a scalable RESTful API for their Chat as a Service product, built using Express, which allows developers to generate JWT tokens, manage users, create channels, and handle messages. The API, designed with scalability in mind, supports user storage via a MongoDB database with Mongoose schema validation, password hashing with bcrypt, and easy deployment options to platforms like Heroku and Kubernetes. The setup involves creating a ".env" file with necessary credentials, and the API structure is organized with directories for routes, controllers, and utilities, supporting versioning for future updates. Developers can clone the open-source repository from GitHub and customize it to their needs, with detailed deployment instructions and support for Docker containerization. The API is fully customizable to support additional functionality, making it a flexible solution for integrating chat capabilities into applications.
Jan 08, 2020 773 words in the original blog post.
React hooks, introduced in February 2019, offer significant benefits for application development by simplifying the implementation of local state and other React features, as demonstrated with Stream Chat. The post highlights three main use cases: the State Hook (useState) for adding local state, the Effect Hook (useEffect) for managing side effects like data fetching, and the ability to create custom hooks for reusable stateful logic. The process of refactoring a class component to a functional component using hooks is illustrated through a demo chat app, showcasing the transition from using this.state and lifecycle methods to leveraging useState and useEffect for a cleaner, more efficient codebase. The guide emphasizes the simplicity of hooks in enhancing code maintainability and adaptability, without the need to discard class components, and suggests starting with smaller components to gradually integrate hooks while ensuring compatibility with existing code.
Jan 08, 2020 2,234 words in the original blog post.
In 2019, Stream experienced significant growth, doubling in team size and customer base, and successfully launched their second product, Stream Chat. The company credits this success to customer support and their dedicated team, while expressing excitement about startups using their products without facing scaling issues, unlike past tech companies. For 2020, Stream plans to enhance their React, iOS, and Android SDKs, introduce ranked aggregated feeds, and launch new features such as push notifications for feeds, live location sharing, and Message Markup Language for interactive messaging. They also aim for better documentation, increased support team size, and unify their chat and feed products for feature parity. Stream is committed to building reusable application components that maintain functionality under heavy traffic and invites feedback on their feature developments.
Jan 07, 2020 844 words in the original blog post.
This tutorial guides readers through building a chat application with user authentication and group messaging functionality similar to Slack channels, using Auth0 for authentication and Stream Chat for messaging. The process involves setting up a Node.js server to handle user tokens and initializing a React application to create a user interface with Stream's React chat components. Auth0 is used to securely authenticate users, allowing them to register or login before accessing the chat, while Stream Chat provides a comprehensive suite of default and customizable chat features. The tutorial is designed for developers with basic Node.js and React experience, requiring them to install necessary dependencies, configure server and client-side authentication, and integrate chat functionalities. The end result is a scalable and robust chat solution, with the complete code available on GitHub for further exploration and development.
Jan 06, 2020 2,231 words in the original blog post.
In the increasingly critical realm of in-app chat solutions, Stream Chat emerges as a robust alternative to Twilio Chat, offering a more comprehensive and polished messaging experience tailored for developers. While Twilio excels in SMS and email services, Stream Chat focuses on delivering a feature-rich and scalable API-driven chat solution, enhanced by a partnership with Dolby.io to integrate superior audio and video technology. Stream Chat's infrastructure supports billions of updates in real-time, and its component libraries for React, React Native, iOS, and Android allow for rapid integration and customization, significantly reducing time to market compared to Twilio. With advanced features such as AI-powered moderation, customizable UI kits for various use cases, and extensive support for frontend components, Stream provides a more cost-effective and efficient solution with unlimited storage and monthly messages at a competitive price point. Stream also facilitates an easy migration process from Twilio, ensuring stability and performance for companies seeking a scalable chat solution.
Jan 06, 2020 1,017 words in the original blog post.
Conversational UI is a digital interface that mimics human interaction, typically through AI chatbots or voice assistants, facilitating user engagement by providing relevant information and services. The text provides a detailed tutorial on constructing a text-based conversational application using React, leveraging Telerik's KendoReact UI library and Stream Chat for real-time messaging. The tutorial covers setting up a React project, integrating various KendoReact components for UI enhancement, and employing the Stream Chat SDK to enable robust real-time communication. Users are guided through initializing the chat client, configuring user authentication, and handling message transmission and reception. Additionally, the tutorial emphasizes the importance of setting up a token server for secure API communication and provides a GitHub repository for accessing the project's code.
Jan 02, 2020 2,341 words in the original blog post.