javascript
Add Texting Functionality to a Video Chat With Vonage Video API
This series of tutorials will explore the Vonage Video API (formerly TokBox OpenTok) and what you can build with it....
Create a Basic Video Chat with Vonage Video API
This series of tutorials will explore the Vonage Video API (formerly TokBox OpenTok) and what you can build with it....
Can you make a countdown timer in pure CSS?
I must first apologise for the somewhat rhetorical question as the title. About 3 minutes after I wrote it, my...
Basics of State and Props in React (2020 edition)
So I’ve finally decided to sit my butt down and learn React properly. I’ll talk a little bit about my...
Is your browser a polyglot?
Over the course of last year, I’ve gone over to Wei’s workplace numerous times to disturb her and her colleagues...
How to Build an On-Page Live Chat
The Nexmo Conversation API allows developers to build conversation features where communication can take place across multiple mediums. A key...
Figuring out CSS animation properties with a magic kittencorn
A little known fact about SingaporeCSS is that we actually have an unofficial mascot. I haven’t named it yet, because...
Building a check-in app with Nexmo's Verify API
Let’s say you are running a game like The Amazing Race, where there are multiple checkpoints that players have to...
Add Two-Factor Authentication to Node.js Web Apps
Two-factor authentication (2FA) gets its name from the fact that you require two things to verify your identity. Something you...
CSS variables for fun and no profit
I run a little monthly CSS meet-up called Talk.CSS, and the man who founded this endeavour with me one fine...
An exercise in progressive enhancement
I’ve had more opportunities to work on the server-side of things these past couple of months, specifically in Node.js, and...
Getting started with Nexmo's Number Insight APIs on Koa.js
Nexmo’s Number Insight API delivers real-time intelligence about the validity, reachability and roaming status of a phone number and tells...
Table design patterns on the web
Tables are a design pattern for displaying large amounts of data in rows and columns, making them efficient for doing...
SMS in the browser: an adventure in WebSockets (and Nexmo Messages API)
A lot of the heavy lifting done by the Nexmo Messages API happens on the server-side. Messages are sent, received,...
A beginner's guide to server-side web development with Node.js
For the bulk of my web career, I’ve worked exclusively on the client-side of things. Designing responsive layouts, creating visualisations...
Build an SMS bot on Glitch with Hapi.js and the Nexmo Messages API
The Nexmo Messages API allows you to utilise a single API to send messages via multiple channels, like SMS, MMS...
Refactoring an inherited codebase
So for 2018, I got myself some gainful employment doing full-time frontend development work. You know, the kind where you...
Learning Cordova while rewriting an app
This is a “refactoring legacy code” post, and I suspect you’ll see more of these in the months to come...
The one about an app
It’s finally happened. I did a proper Javascript thing. Now before you start to judge me, let me clarify that...