Tagged "all"

Making the Invisible Visible: The DevRel Value Model

This article discusses a framework that makes DevRel's impact visible by translating community activities into weighted scores and theoretical ROI for leadership.

The Importance of Precise Function Declarations for LLMs

This article explores how clearly defined functions enable large language models to make accurate tool calls, emphasising the importance of precision and developer intent in the function calling process.

Creating an MCP Client: Connecting LLMs to the Real World

In this article, we walk through the process of building a Model Context Protocol (MCP) client. Learn how to connect to servers, discover tools, and invoke them from your own app or LLM integration.

MCP Servers - The Bridge Between LLMs and Real-World Tools

Model Context Protocol (MCP) servers expose tools, resources, and prompts to LLMs in a unified, structured way. This post explores how they work, how to build one, and why they are a critical part of the future AI stack.

Consuming Streamed LLM Responses on the Frontend: A Deep Dive into SSE and Fetch

Learn how to build a responsive, real-time user experience by consuming streamed Large Language Model responses on your frontend. This article provides a comprehensive guide to using both Server-Sent Events (SSE) and the Fetch API with Readable Streams, complete with code examples and a detailed comparison.

Filling in the Blanks: Teaching AI to Inpaint

A hands-on guide for exploring how to train a simple AI model using TensorFlow.js to inpaint missing parts of images - without needing large datasets or prior machine learning experience.

Agentic AI: Multi-Agent Systems and Task Handoff

The final article in the Agentic AI series explores multi-agent systems: how specialised agents collaborate through structured handoffs to complete complex user goals.

Understanding the Orchestrator-Worker Pattern

The orchestrator-worker pattern brings scalable structure to agentic AI workflows by cleanly separating high-level planning from specialised task execution. Through a practical trip planning example, this article demonstrates how LLMs can dynamically coordinate expert agents, grounded in schema-driven logic and real-world data.

Building with Reflection: A Practical Agentic AI Workflow

This article explores how to implement a reflection loop-an agentic AI pattern where a model generates, critiques, and iteratively improves its output - using image captioning as a practical example.

Parallelisation as an Agentic Workflow

Unlock faster, more diverse reasoning by running multiple LLM prompts in parallel and aggregating their responses into a single, cohesive output.

How Transformers and LLMs Actually Work - A Developer's Guide with Code

A hands-on walkthrough for web developers to demystify large language models by actually building a mini Transformer from scratch.

Routing: Building Step-by-Step AI Reasoning

Explore how to intelligently route AI queries using schema-guided function calling and contextual categorisation.

Prompt Chaining: Building Step-by-Step AI Reasoning

Learn how prompt chaining enables AI to tackle complex tasks through step-by-step reasoning, boosting both accuracy and interpretability.

LCP and low-entropy images

In this article we take a look at how to see if an image has low-entropy for LCP calculation.

Compare how different image formats load on the web

WebP, AVIF, JPEG XL, Progressive JPEG - how do these image formats compare in terms of their load speeds and how can we measure it? In this article we review a small app that gives us a visual answer.

Google Chrome introduces a new Performance Insights panel

A new performance insight panel has been added to Chrome which helps with tracking down performance bottlenecks in a much easier fashion compared to the classic performance panel

call vs apply vs bind

In this article we take a look at the differences between call(), apply() and bind().

contains vs includes

This article explains the two, often mixed-up, contains and includes methods.

slice vs splice

This article explains the two, often mixed-up, slice and splice methods.

AVIF - Another Video based Image Format

In this article we take a look at AVIF - a next generation image format that was first introduced by Netflix and it promises optimised performance over the widely used and popular JPEG.

Bring your C++ Application to the Web with Web Assembly

Web Assembly allows developers to bring existing applications written in languages such as C++ to the web, leveraging the combination of modern browsers and JavaScript. This article features a C++ application port to Web Assembly.

Image Upload and Metadata Extraction with Netlify Functions

This article discusses how to upload images using Netlify Functions, store them in Cloudinary and extract Exif metadata for further usage.

Uploading and Displaying Videos with Next.js

In this article we put together a project to demonstrate how to upload and display videos using Next.js

Container Queries Meet AI-Based Cropping

The long-awaited CSS feature has finally landed behind a flag in Chrome Canary. In this article, we will take a look at an example of using them in conjunction with a clever, AI-based cropping solution from Cloudinary.

Creating an Automated Social Share Card Using Cloudinary and Eleventy

Social share cards are a great addition to any website, however building them manually could be challenging. This article discusses how to create them in an automated way, and it also introduced a plugin that can be used with Eleventy.

Three-State Light/Dark Theme Switch

Light and dark mode options are frequently added to websites; however, most solutions implement it as two-states, righteously. In this post, we'll take a look at a better, three-state approach.

Understanding Lazy-Loading in Popular Frontend Frameworks

Lazy-loading is a concept that allows us to defer the loading of certain components to eliminate potential performance bottlenecks. This article discusses lazy-loading techniques for popular frontend frameworks.

React, Videos and the Orientation API

This article discusses how to best optimise videos shot in landscape/portrait mode in a React environment using the Orientation API.

Media Asset Management in the Jamstack

What are the best ways to manage media assets for a Jamstack project? The aim of this article is to discuss your options.

Create a custom colour replace component

Create a custom React component to do colour replacement using Cloudinary on your images.

There's an API for that

The A in the Jamstack refers to APIs. In this post we take a look at how and why APIs matter for the Jamstack.

The holy trinity of the CSS

Explaining the three basic CSS positioning models in order to understand the concept of CSS.

Creating memes with Cloudinary

Creating memes is always fun - in this article we take a look at how to utilise Cloudinary to generate themes for the Dolly Parton challenge.

The Cornerstones of HTML

Inspection of different pillar elements of HTML and the importance of them. Including topics like images, divs, forms, different tags and other key elements of HTML.

The Importance of Media Accessibility (m16y)

This article discusses how to make modern, visual websites more accessible for visitors having visual impairments. We have coined this 'media accessibility' or 'm16y'.

Introduction to the Jamstack

The aim of this article is to introduce the Jamstack. What is it about? What benefits are there for those who use it? These are the questions we will answer while having an overview of some of the services that can be used under the umbrella of the stack.

Using React Hooks with GraphQL

Using React hooks with GraphQL means less boilerplate code for apps. Read more about it in this article.

The three rendering musketeers: server-render, client-render and pre-render

Today there are three popular rendering mechanism used: server-side rendering (SSR), client-side rendering (CSR) and pre-rendering. This article reviews how they differ from one to the other.

What Is Isomorphic JavaScript?

This article discusses isomorphic (universal) JavaScript and how it can be applied to a PWA without any frontend frameworks, relying only on vanilla JavaScript.

Creating Progressive Web Apps with Vue

This article discusses how to create Progressive Web Apps using Vue.js (with the help of Workbox)

Basic Internet Knowledge - Internet 101

Useful informations for beginners, about how the workings of the internet, including topics such as IP addresses, webservers and more.

Creating a Realtime PWA Using Angular and Firebase (Part 2)

In this article we take a look at how to transform an application created using Angular & Firebase to function as a Progressive Web App.

Thoughts about Web Development and Coding from a Newbie

Thoughts about Web Development and Coding from a Newbie

Creating a Realtime PWA Using Angular and Firebase (Part 1)

In a series of articles we'll take a look at how to create a PWA using Angular, Firebase and Cloudinary.

Using Decorators in JavaScript

This article discusses decorators used in JavaScript.

Optional Chaining Operator in JavaScript

The Optional Chaining Operator in JavaScript allows developers to safely check for the existence of deep nested properties in objects.

The future of JavaScript (ECMAScript 2019 and beyond)

In this article, we'll go through some of the features that are currently being considered to be added to JavaScript.

Setting up a Headless CMS on a VPS using Clouding.io

VPS - Virtual Private Servers - are hosted, virtual servers that we can rent from various providers. They have multiple benefits, including but not limited to stability, performance and flexibility.

🍬Syntactic sugar, diabetes alert🚨

Syntactic sugar is everywhere in JavaScript. Most will say it's JUST syntactic sugar - a tiny bit of candy that makes your coding life sweeter. Well, is it? A little bit of sugar here, a bit there… and before we know it, we already need an insulin shot. 

Serve an Angular app on localhost via HTTPS

Enabling HTTPS support via the Angular CLI is really straight forward, however generating a trusted certificate can be tricky. This article discusses how to achieve HTTPS on localhost for Angular applications.

ES6 — Set vs Array — What and when?

Some can argue that Set has more advantages compared to Array. Others may wonder why there is a need for Set now (we have been doing pretty well without one until now). What exactly differs these two and when to use one over the other?

404 after refreshing the browser for Angular / Vue.js app

This article discusses how to add utilise HTML5 style navigation for both Angular and Vue.js applications, and how to implement server side URL rewriting for full functionality.

Retrieve only queried element in an object array in MongoDB collection

In this 'Quick Tip' article, we review how to retrieve only the queried element in an object of arrays in MongoDB.

An Overview of ES2015 (ES6) Modules

This article focuses on the current state of Modules in the JavaScript ecosystem

Remove unused CSS / JavaScript code from your project

This article discusses how to run code coverage checks in Chrome DevTools as well as via Puppeteer in an automated way.

Adaptive image caching based on network speed with Workbox.js

In this article we review how to adaptively cache images based on network speed with Workbox.js and Cloudinary.

A Cloudinary plugin for Workbox.js

In this article we review how to adaptively cache images based on network speed with Workbox.js via a custom plugin.

Image management via GraphQL

In this article, we take a look at how to manage images using GraphQL.

Symbol, Iterator and Generator in JavaScript

In this article, we'll take a look at Symbols, Iterators and Generators in JavaScript (ES2015) and we'll also implement an interesting example of using all three technologies.

Capturing user input in a Node.js application

This article discusses how to create an application in Node.js that will await input from a user via the readline built-in module.

Introduction to Serverless (FaaS)

In this article we are reviewing Serverless architectures, with a focus on Function-As-A-Service and we also take a look at an example implementation of FaaS

How to pass command line arguments to a Node.js app?

In this article, we'll take a look at how to pass command line arguments to a Node.js application executing from the CLI.

Add Material Design to an Angular application

This article reviews how to add and utilise Material Design within an Angular application.

Add Bootstrap to an Angular application

This article discusses how to integrate Bootstrap with an Angular project in three ways - using Bootstrap natively, via ng-bootstrap as well as ngx-bootstrap.

What is an opaque response?

In this article, we'll take a look at the mysterious 'opaque response' and learn what it means.

Image Management in Ghost - A performance report

This article draws a comparison between the built-in Ghost Image Management and a third party Image Management solution including a performance comparison.

Loading data before components in Angular

In this article, we'll review a few ways to make sure that data is available for a component before we load it and display it in the application to the user.

What's new in HTML 5.2 and HTML 5.3?

In this article, we'll review the latest proposed additions to HTML - more precisely we'll discuss HTML 5.2 and HTML 5.3.

Deprecation Warnings in MongoDB's Node.js API

This article shows how to fix some of the deprecation warnings after updating to MongoDB 4 as well as using the MongoDB Node.js 3.x API.

Adaptive image loading based on network speed

In this article, we'll explore a concept based on Network Information API, Service Workers and Cloudinary to enable web applications to serve lower quality images (if necessary) in order to speed up the perceptual load time of the web app.

Sharing a MongoDB connection in Node.js/Express

This article covers how to share a MongoDB database connection in a Node.js/Express application in the right way.

RESTful API Design - POST vs PUT vs PATCH

In this blog post we'll not only explore these differences but also discuss idempotent and safe HTTP methods.

RESTful API Design - The basics

In this article, we'll take a look at some of the basics of REST APIs and design such APIs, in the context of Node.js and Express.

Use Angular Custom Element in Vue.js

In this article, we'll now see how to use such custom elements outside Angular and in a supposedly competing framework, Vue.js.

Create and use Custom Elements with Angular

In this article, we'll take a look at the new custom elements feature in Angular6. We will see how to create a custom element as well as how to reuse it in a simple application.

res.json() vs res.send() vs res.end() in Express

In this article we are discussing the differences between the json(), send() and end() methods available as part of Express response object.

Introduction to GraphQL

In this article, we'll take a look at GraphQL and go through a basic example while exploring why it's a great supplement for REST APIs.

Why shouldn't JSONP​ be used?

JSONP is could be considered to be a useful way to avoid CORS errors however it has more cons than pros - this article discusses the most important factors.

Display real-time data in Angular

In this article, we'll be taking a look at two ways to display real-time data in an Angular application - one using a timeout and the other using sockets.

Unsubscribe from Angular/RxJS subscription

In this article, we are discussing when it is required to unsubscribe from an observable in Angular to avoid memory leaks.

Blockchain implementation using JavaScript

In this article, we are implementing a blockchain solution using JavaScript and while implementing, getting familiar with this emerging technology.

HTML Attributes vs DOM Properties

When working with various JavaScript frameworks, or only just by working in the field of web development, newcomers and novice developers often confuse attributes and properties concerning HTML pages. In this article, we'll clarify the difference between these two.

Hiding / removing elements in DOM using JavaScript

In this article, we'll take a look at how to hide and remove elements in DOM by using JavaScript, and we'll learn a few techniques and explain the differences between them.

What's new in Angular 6?

In this article we are discussing the changes involved with the latest relase of the popular frontend framework by Google, Angular 6.

Caching HTTP requests with Angular

​Often when working with Angular applications, we make HTTP requests to access data from an API. Sometimes we are making requests to the same API endpoint in which case it'd make sense to cache the result of the response to avoid further requests.

Using Next.js and Auth0

Server-side rendering is an exciting​ concept especially when authentication is also part of an application. In this article, we take a look at how to achieve authentication using SSR.

Quién es full stack (web) developer?

En este artículo vamos a tratar de responder una pregunta muy importante: quién es un desarrollador full stack?

Binding HTML with Angular

In this article we are reviewing what it takes to render HTML content inside Angular templates, including a word of caution regarding unsafe content.

constructor vs ngOnInit in Angular

A frequently asked question in Angular2+ is the difference between constructor() and ngOnInit() inside components. This article gives an answer.

How to find the version of an installed npm package?

In this article we are reviewing three ways to get the version numbers of local or global npm packages installed.

How to read environment variables in Node.js?

Storing secrets, usernames and passwords can be done in Node.js via environment variables. We'll take a look at how to manage these in this article.

Typescript: Interfaces vs Types

Interfaces and type aliases both offer contracts to fulfil in TypeScript code. At first they may look the same however there are some key differences between the two.

Cannot redeclare block-scoped variable 'name'

In this article we take a look at how to resolve the "[ts] Cannot redeclare block-scoped variable 'name'." error raised by TypeScript.

Unsupervised Machine Learning with JavaScript

In this article we are taking a look at an unsupervised machine learning and using it we'll cluster our sample dataset.

'Unexpected Token Export' error

When trying to utilise the ES2015 export/import statements (aka ES2015 module syntax) in Node.js we are presented with the 'Unexpected Token Export' error. There's a reason why this error appears and in this article we'll investigate why this is happening.

Question mark in Angular expressions

Angular comes with a safe navigation operator that guards against 'null' and 'undefined' values in property paths.

How do you extract POST data in Node.js?

Often times when working with Node.js based web applications we are faced with an option to handle data sent from a form. In this article we'll take a look at how to extract POST data in Node.js

File upload with Angular and Restify (Tutorial)

In this tutorial we'll learn how to upload files from an Angular5 application to a Node.js REST API that runs using Restify. For the file upload functionality we'll use the File Web API, without relying on a third party component.

Natural Language Processing with NoSQL and JavaScript

In this article we are taking a look at how to apply a branch of Machine Learning - Natural Language Processing - to do sentiment analysis on unstructured text with JavaScript and NoSQL.

Angular - Http vs HttpClient

A new, more robust HttpClient is available as of Angular 4.3. In this article we are discussing its main changes with code examples.

Securing a REST API

In this article we are discussing how to secure a REST API using JWT (JSON Web Tokens).

Angular - Promise vs Observable

An article explaining the differences between Promises and Observables in Angular.

Factory Pattern in TypeScript

This article discusses how to apply the Factory Pattern in a TypeScript environment

What is semantic versioning?

In this article we are discussing what semantic versioning is.

Async/await in Node.js

`async/await` is a great way to create asynchronous code and Node.js now supports these operators out of the box.

What's new in Express 5?

Express, the most used web server for Node.js has a new release coming out soon. In this article we discuss the changes Express 5 will bring.

Abstraction in TypeScript

Abstraction is an Object Oriented programming concept to hide complexity and in TypeScript we can make use of this via the abstract keyword.

Adapter pattern in TypeScript

Design patterns help us to design better software and write better code. Learn how to use the Adapter pattern with TypeScript in this article.

Resolving Error: Uncaught (in promise): EmptyError: no elements in sequence

In this article we'll see how to fix the `Error: Uncaught (in promise): EmptyError: no elements in sequence` error caused by the Angular router.

Singleton Pattern in TypeScript

Design patterns help us to design better software and write better code. Learn how to use the Singleton patternwith TypeScript in this article.

Resolving 'Can't bind to 'ngFor' since it isn't a known property of 'element'' error in Angular

Read how you can potentially fix the 'can't bind to ngFor since it's not a known property of 'element' error.

Using Jasmine with JavaScript

Testing is an important aspect of development and in this article we'll take a look at how to add Jasmine unit tests to a JavaScript (ES6 / ES2015) code.

Resolving 'import is blacklisted' tslint error for RxJS and Angular

Read how to fix the 'This import is blacklisted, import a submodule instead' tslint error for RxJS and Angular.

What is CORS?

Cross-Origin Resources Sharing (CORS) is a security protocol implemented by browsers. See how to avoid running into CORS errors via this article.

Debugging TypeScript in the browser

Using source maps it's possible to debug TypeScript code directly in the browser even after transpilation.

Introduction to RxJS and Observables

What is RxJS and what are observables? A gentle introduction to these terms and the technology that drives them.

Promises in JavaScript

Promises in JavaScript are a powerful concept that allow us to write asynchronous code in a synchronous fashion with better error handling than callbacks.

Arrays and Objects in ES2015

A range of new capabilities have been added to JavaScript with ES2015 that helps us work with arrays and objects.

Generics in TypeScript

TypeScript introduces Generics which allow us to use reusable components within our applications with ease.

Functions in TypeScript

Functions in TypeScript work in exactly the same way as functions in ES2015, allowing us to use rest and default params and fat arrow functions in combination with data types.

Rest Parameters, Spread Operator and Default parameters for Functions

Rest Parameters, Spread Operator and default parameters for Functions are all great additions for JavaScript ES2015.

Promise anti-pattern

JavaScript promises have an important anti-pattern when it comes to using .then() with an error handler versus when using .catch() for handling errors.

Classes in TypeScript

Classes in TypeScript really extend JavaScript's (ES2015) class functionality and add their support for types and member access.

Classes in ECMAScript 2015

If you have worked with JavaScript before you may have heard the expression 'prototypal inheritance' or that JavaScript is a 'prototype' based language. As of ES2015 we can use the class keyword which adds syntactic sugar over the prototypes.

Declaring variables in ECMAScript 2015

The way you have defined variables in JavaScript for the past decade has always been the same – by using the `var` keyword. In the latest version of JavaScript (ES2015) you can declare variables using let and const.'

Functions in JavaScript

The latest version of JavaScript (ES2015) allows us to write functions in a different way by using the arrow function syntax. This not only allows for terser function declarations but also has additional benefits.

Interfaces in TypeScript

Interfaces provide a very powerful way of to define entities that most conform a definition – in other words it allows us to specify properties for entities.

Types in TypeScript

TypeScript uses data typing which is one of it's most important features for allowing developers to write better code.

Introduction to TypeScript

TypeScript is a language developed by Microsoft that, among other things, has type support. In this article we'll discover its basics including how to setup your environment to work with this language.