Upload images and other files efficiently

Let’s upload ! Photo by vnwayne fan on Unsplash

So you have a frontend app communicating with a backend, and you need to upload media to a CDN provider before handling the metadata? Excellent, we’ll see how you can do that with reuse and flexibility in mind under Node.js.

We’ll cover how to write your server-side CDN service abstracting a CDN provider API, as well as your multipart form data parsing service. And we’ll also briefly handle the client-side code as well.

This is the second installment of my “Solving Real-Life Problems in JavaScript” series. The first installment is about WebSockets.

The Context

We’ll use a CDN provider API. I choose…


And how to extend the solution to Android and iOS

decorative: neon sign with heart in a comment bubble
decorative: neon sign with heart in a comment bubble
Photo by Prateek Katyal on Unsplash

So you have a frontend app communicating with a backend, and you need to send notifications to the user: We’ll see how you can do that with no overhead under Node.js.

We’ll cover how you can send regular notifications through WebSockets, taking clustering into account, and we’ll also show mobile notifications on iOS and Android as an extra bonus.

The Context

We’ll use the ws library, not the more popular Socket.io. That’s mainly because we feel Socket.io …


This is the story of how I decided to build the app I believed in and wanted to use while having a marketing-focused consulting job as my main occupation as well as little to no prior knowledge of the technologies involved. And how I single-handledly did it, from design to code, from content to market launch, aiming at entreprise-level quality.

Opening a window to (re)discovering a city. That was the goal of the Paris Parcours app and technology. Photo by Isaiah Bekkers on Unsplash

If I did it, anybody can, believe me : my goal is not to brag but to show this can be done in a reasonable time frame by anyone curious and motivated enough. Oh, and you might — I did…


C’est un sujet à la mode, mais rarement disséqué sur le plan méthodologique. Nos 5 conseils pour bâtir une approche cohérente basée sur le couple objectif-récompense et appliquer cette mécanique à ses projets.

© wester / Flickr

S’appuyer sur le contenu et le réel, mais aussi l’alimenter en retour

Dans l’industrie du jeu vidéo, plusieurs grands succès, notamment les jeux de tir, ne s’embarrassent pas de scénarios élaborés mais compensent par la prouesse technique, la jouabilité, une forme d’immersion non narrative. Les mécaniques de gamification ont des buts différents : elles existent par rapport au réel, pour faciliter l’appropriation d’un message, d’une connaissance, l’accomplissement d’une action, améliorer une expérience de découverte ou de consommation.

En ce…


In the last year, one of the main projects of mine and my (French) company Iperiago was the complete reinvention of our tool for creating and following map-based, playable itineraries. This lead to the new and improved Paris Parcours web & mobile app. It was written under Node.js for the API backend and Vue.js (with Quasar Framework) for the front-end.

Photo by Christian Fregnan on Unsplash

We had of course knowledge of JavaScript prior to this, and of software engineering in general. For those interested, I wrote two series about my (hopefully not too bad) practices in real-world development, both in Node.js and Vue.js …


This is Part 3 of a 5-part series.

Part 0 was the introduction, Part 1 was about organizing our application architecture effectively, Part 2 tackled components best practices, abstracting third-party APIs, authentication and routing, now the goal is to tackle reactivity properly, especially common caveats, but also test and debug your app ! As a reminder, we aim at building a travel application in JavaScript under Vue.js, communicating with a REST API backend.

Photo by Kelly Sikkema on Unsplash

How to tackle Vue.js reactivity caveats ?

Modern JavaScript framework do an amazing job to ease the development of reactive apps. Yet JavaScript itself, as a language, has limitations so there is only so…


This is Part 2 of a 5-part series.

Part 0 was the introduction, Part 1 was about organizing our application architecture effectively. Now we’ll go even deeper into fine tuning our application for reusability and decoupling : we’ll decide how many components to set up (and when we should split them into multiple ones) and talk about wrapper components. We’ll also abstract needed third-party APIs, and manage crucial operations such as authentication and routing. As a reminder, we aim at building a travel application in JavaScript under Vue.js, communicating with a REST API backend.

Building right. Photo by Christopher Burns on Unsplash

How to handle Vue.js components ?

Writing a bloated component is pretty…


This is Part 1 of a 5-part series.

Part 0 was the introduction, now this first installment will dive into how to organize our application architecture effectively, from folder structure and coding guidelines to the best use of Vuex store modules, Vue slots and mixins. As a reminder, we aim at building a travel application in JavaScript under Vue.js, communicating with a REST API backend.

Let’s get organized ! Photo by Gabriel Beaudry on Unsplash

How to organize code, name files and write simple, readable, intuitive code, under good coding guidelines ?

Make no mistake, there are many ways to set up a good folder structure, so the following one is by no means the only possible one. …


What decisions will you have to make when organizing your code for readability and reuse when developing a front-end JavaScript app ?

What practical choices need to be made, while keeping flexibility in your UI choices, regarding back-end and external APIs integration, component decoupling, state management, testing… ?

They (almost) never tell you that.

Photo by Justin Lane on Unsplash

Almost, because there is indeed more quality content on the Web on those subjects than you’d find when it comes to back-end equivalents. By the way, I dedicated a similar series to the latter a few months ago if you’re interested :

But still, most of…


This is Part 5 of a 5-part series.

Part 0 was the introduction, Part 1 was about structuring your application and coding style, Part 2 was about persisting our domain, setting up the HTTP interface. Part 3 was about authentication, access control and error handling. Part 4 was about CLI commands, commenting, documenting and testing our REST API written in JavaScript under Node.js with a Koa server, a Mongodb database and the Mongoose ODM. This final part will be about deploying and some “advanced” tips and tricks.

Let’s dive into getting in production and go further ! Photo by Scott Webb on Unsplash

How to deploy in production ?

Before deploying in production, you have to differentiate your dev, test and prod

Jérôme Morlon

Founder of Iperiago, creator of content and technology. https://www.iperiago.com/enhttps://www.parisparcours.com/en

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