October 2023 Summaries
10 posts from Ably
Filter
Month:
Year:
Post Summaries
Back to Blog
This tutorial demonstrates how to create real-time closed captioning using Deepgram's AI tooling and Ably's Serverless WebSockets solution. The project involves creating a React application with Vite, coding in TypeScript, and setting up a server that interfaces between Deepgram and clients. The client can start recording audio, which is then transcribed by Deepgram and broadcasted back to the clients via Ably for rendering. Both Deepgram and Ably provide free access to their products, making this an accessible solution for real-time closed captioning.
Oct 27, 2023
2,903 words in the original blog post.
Realtime collaboration solutions are becoming increasingly popular among developers looking to build similar collaborative features into their applications. These solutions, such as APIs and SDKs, enable developers to add realtime collaboration capabilities without having to build the underlying infrastructure necessary to support them. Some of the best collaboration APIs and SDKs include Ably, Liveblocks, Replicache, Cord, and PubNub. Each solution has its own unique qualities and advantages, and it's crucial for developers to consider their specific needs and requirements before choosing a solution.
Oct 25, 2023
2,212 words in the original blog post.
In this tutorial, we built a full-stack JavaScript application that uses WebSockets for real-time communication between the client (a React app) and the server (a Node.js Express app). The main feature of our application is real-time cursor tracking, which allows multiple users to see each other's cursors on the screen in real time.
Here are the key takeaways from this tutorial:
1. WebSocket is a protocol that provides full-duplex communication channels over a single TCP connection. It enables real-time, bi-directional communication between web clients and servers.
2. To use WebSockets in your application, you need to set up both the client and server sides of the connection. The client initiates the connection by sending an HTTP upgrade request to the server. If the server supports WebSocket, it responds with a 101 status code and upgrades the connection to WebSocket.
3. In this tutorial, we used the react-use-websocket library to manage the WebSocket connection in our React client app. This library provides a simple hook that abstracts away many of the complexities of working with WebSockets directly.
4. To send real-time cursor updates from the client to the server, we throttled the updates using lodash.throttle. This helped reduce network traffic and improve performance by preventing the server from being overwhelmed with too many messages at once.
5. On the server side, we used the WebSocketServer class provided by the ws library to handle incoming WebSocket connections. We also implemented a simple broadcast mechanism that allows us to send updates to all connected clients simultaneously.
6. To render real-time cursors on the screen, we used perfect-cursors - a small utility library that can animate the movement of a cursor between two points. This helped create a smooth and visually appealing real-time cursor experience for our users.
7. Finally, we added a "who's online" list to our application by leveraging the user presence information maintained by Ably. This feature allowed us to easily display a textual representation of who's currently connected and their state.
By following this tutorial, you should now have a good understanding of how to use WebSockets in your React applications for real-time communication between clients and servers. You can also apply the same concepts and techniques to other types of real-time applications such as chat apps, multiplayer games, or collaborative editing tools.
Oct 23, 2023
5,902 words in the original blog post.
This article explores the top eight WebSocket libraries for Node.js, including Socket.IO, WS, SockJs, Feathers, µWebSockets, Faye-WebSocket, Primus, and SocketCluster. Each library has its own strengths and weaknesses, making it crucial to choose one that best fits your project's requirements. WebSockets enable bidirectional communication between a server and client, allowing for realtime updates in applications like chat apps, online gaming, live notifications, collaborative tools, and financial trading platforms. The article also discusses the advantages of using Ably as an alternative to traditional WebSocket libraries, offering scalability and efficiency through its integration with the Pub/Sub model.
Oct 20, 2023
3,984 words in the original blog post.
In this blog post, the author demonstrates how to build a realtime browser-based closed-captioning system using React, AssemblyAI's realtime transcription service, and Ably. The application consists of two modes - publisher and subscriber. The publisher captures audio from the user's microphone, transcribes it in real time using AssemblyAI, and broadcasts the transcriptions to subscribers via Ably. The subscriber receives these transcriptions and displays them on the screen. This system can be useful for making content more accessible to people with hearing impairments or those learning a new language.
Oct 20, 2023
3,066 words in the original blog post.
In this article, we built a React application that sends users a work-break time reminder using Ably for realtime communication between the client and server, react-toastify to display notifications in the browser, and Notifications API to trigger system notifications. The application allows users to specify their work and break time durations, and when their work session is completed, it automatically sends a notification suggesting activities for their scheduled break time. Additionally, a goal sharing feature was implemented where users can input their name and a message that they might want to share with others using the application.
Oct 11, 2023
4,526 words in the original blog post.
React notification libraries streamline the process of constructing and displaying alerts effectively within React-based web applications. These libraries offer various types of notifications, such as toast, snackbar, alert, and modal, each serving a unique purpose in user experience. Some popular React notification libraries include react-toastify, react-hot-toast, notistack, and react-notification-system. When choosing the right library for your project, consider factors like size, performance, customization, and accessibility features. Among these options, react-toastify stands out as a comprehensive choice due to its balance of features and ease of use.
Oct 10, 2023
2,022 words in the original blog post.
Microsoft Word and Adobe experienced market disruption due to new entrants offering realtime collaboration features, such as Google Docs, Figma, and Miro. Building collaborative environments was challenging for companies like Figma, requiring large development teams or long development times. However, Ably's Spaces product simplifies the process by allowing developers to create collaborative spaces in just a few lines of code. This makes it easier for businesses to implement realtime collaboration features and focus on other priorities.
Oct 06, 2023
629 words in the original blog post.
The rise in remote work has led to a need for online collaboration tools that can replicate the sense of connection and productivity experienced in face-to-face settings. Key features required for virtual collaborative environments include avatar stacks, member location, live cursors, and component locking. These features provide realtime information about who is present, where they are located, what they are doing, and which components are being edited. UX design considerations emphasize simplicity, intuitiveness, and minimizing distractions. Developers can use the Spaces SDK to easily integrate these collaborative features into their applications with minimal effort.
Oct 04, 2023
1,763 words in the original blog post.
This post guides users through creating a real-time chat application with Next.js and deploying it to Vercel. It covers topics such as adding real-time functionality with Ably, creating a Next.js Vercel Serverless API, using React Functional components and React Hooks with Ably, and hosting the app on Vercel. The tutorial also discusses challenges of implementing a reliable client-side WebSocket solution for JavaScript apps and provides an overview of how to build a realtime chat app that runs in the browser.
Oct 03, 2023
2,845 words in the original blog post.