In this article, we’ll see how to use Airtable to store realtime messages using a group chat app as an example. We’ll use Ably’s realtime infrastructure to power the chat app and make use of WebHooks to publish messages to Airtable directly in the correct order from Ably.

Check the full source code of the group chat app written in VueJS on GitHub and the live demo of the application at https://realtime-chat-storage.ably.dev/

What is Airtable?

Airtable describes itself as ‘Part spreadsheet, part database, and entirely flexible’ and that’s exactly what it is to the word. It caters to the engineering and commercial departments in an organization alike with its robust REST API and very nice visual UI with custom fields to manage and represent the data. It combines a bunch of different tools like task managers, databases, CRMs, spreadsheets, etc, into a single product.

Image for post
Image for post

Airtable REST API

Airtable comes with a simple REST API to perform the basic CRUD operations on the data stored. You’ll need to have a base i.e. a table/ sheet set up before you can check out the documentation. This is for a good reason — their whole documentation is dynamically displayed with real keys, ids, column names etc, along with sample responses, based off your data, making it super easy for you to just copy out the code and use as is. They provide this documentation in cURL and JavaScript. The JS code snippets require using the Airtable JavaScript Client SDK. Here’s a look at the documentation for the chat app base. …


Image for post
Image for post

Hello developers!

TL;DR

I built a realtime quiz framework so developers building EdTech apps can quickly get started with scalable realtime messaging and focus on their app logic. It is a fully customizable framework built with NodeJS, VueJS, and powered by Ably’s realtime infrastructure which primarily operates on WebSockets.

It also implements Node JS worker threads to simulate multiple ‘quiz rooms’ (aka dedicated servers spooled up on-demand) so different groups of people can simultaneously participate in different live quizzes organized by their dedicated hosts. You can check out framework on GitHub at https://github.com/Srushtika/realtime-quiz-framework


Making multiplayer games just got easier

Hello game developers!

TL;DR — I built a realtime communication framework so game developers can build multiplayer games without needing to worry about the networking side of it and instead focus on their game logic. It is powered by Ably’s realtime infrastructure which primarily operates on WebSockets and is built in Node JS and Vanilla JS (use it with any JS framework you like 😉). It also implements Node JS worker threads to simulate multiple ‘game rooms’ so different groups of players can simultaneously play the game. You should check it out: https://github.com/Srushtika/multiplayer-games-scalable-networking-framework

A few months back I got into the world of building high-frequency (realtime) multiplayer games to get my boss’s attention as he’s extremely passionate about game development (Challenge: Try to have a tech conversation with Ben Gamble, without game dev coming up!🌚🕹). …


Hello, and welcome to the final part of this article series where we are looking at the step-by-step implementation of a realtime multiplayer game of space invaders with Phaser3 and Ably Realtime. 🚀

Image for post
Image for post

Here’s the full index of all the articles in this series for context:

In this article, we’ll finish up the client-side code to render the game and also add the home and leaderboard screens for our game. …


Hello, it’s me again 👋🏽

Welcome to Part 3 of this article series where we are looking at the step by step implementation of a realtime multiplayer game of Space Invaders with Phaser3 and Ably Realtime.

Image for post
Image for post

In the previous article, we learned all about networking for realtime multiplayer games and also the Pub/Sub messaging pattern. We then saw the design and channel layout for our game.

Here’s the full index of all the articles in this series for context:


Hey again 👋🏽

Welcome to Part 2 of this article series where we are looking at the step by step implementation of a realtime multiplayer game of space invaders with Phaser3 and Ably Realtime.

Image for post
Image for post

Here’s the full index of all the articles in this series for context:

In first part of this series, we learned about the basics of gaming and the Phaser 3 library. In this article, we’ll gain an understand of various networking protocols, architectures and system design to build multiplayer games. …


Do you play games?…. Duh! Ever thought of building one yourself?… Hmm..

Games innately seem difficult to build. With lots of moving pieces involved (quite literally), game development seems like it’s restricted to devs who’ve immersed their feet deep into the holy waters of networking, mathematics, graphics, and the like.

However, with the web evolving ever so rapidly and with all the new protocols and libraries that have spanned in recent years, it’s now super simple to get started with building browser-based multiplayer games.

Image for post
Image for post

In this article, we’ll look at step by step implementation of a realtime multiplayer game of space invaders (ah, the nostalgia!) …


With the new Channel Metadata API, you can keep abreast of changes in metadata associated with your channels; or request this information whenever you need it. Read on to understand how this overcomes the classic n-squared problem you’d face with presence when you have all your clients subscribe to receive updates about other clients joining and leaving your app.

TL;DR
The quick version is that we’ve just launched the Channel Metadata API. This API gives you insights into the metadata associated with the data channels in an Ably app. This includes:

  • The state changes in a channel’s lifecycle.
  • Occupancy changes, (such as the number of publishers, subscribers or presence members).
  • Enumeration (or ‘listing’) of all the active channels in a specific app.
Image for post
Image for post

Check out a quick 2 min video explaining what you can use this API for.

As well as providing general stats about the channels in an app, this API solves some much bigger issues, which we delve into below. …


Image for post
Image for post

In this article, we’ll see how to implement a WebSocket server using Node.js.

Before we jump right in — if you are not familiar with WebSockets as a transport protocol, here’s a brilliant article that you should read. You can take your learning a bit further with another great article about long polling.

I’ll be using Node.js for this (version 10.7 is installed on my machine at the time of this article).

Your server may be running Go, .NET, Java, or something else. The implementation in each of those environments will vary depending upon the HTTPserver libraries available.

The actual concepts will be fairly consistent though. They all follow the same standard specifications for interpreting and constructing HTTP requests and responses, and for parsing and generating data that uses the WebSocket framing protocol. …


We are knee deep into the real-time world by this point with so many applications working with live data. It’s high time there was an explanation of all the events leading up to this point in a technological stance. So, here goes…

These days, applications are moving from utilizing stale data from a database or data that’s created on-the-fly following an event trigger a live experience following real-world events. The first thing we think of when it comes to realtime applications is ‘WebSockets’. But, in spite of a lot of people constantly tossing around this term in technological circles, there actually seems to be huge misconceptions associated with its meaning and working.

Let’s bust the jargon and understand what’s happening!

HTTP -> Long Polling -> WebSockets

Back in the day, HTTP’s stateless request-response mechanism worked perfectly well for the then use-cases, letting any two nodes communicate over the internet. …

About

Srushtika Neelakantam

Developer Advocate for Ably Realtime | Mozilla Tech Speaker and Rep

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store