Articles
Code, architecture et retours d'experience — par des devs, pour des devs.Un chatbot IA qui tourne entièrement dans le navigateur
Comment on a construit un chatbot d'entreprise qui fonctionne sans serveur, sans API, sans backend — juste du WebGPU, Transformers.js et un modèle ONNX de 450 Mo chargé à la demande. Retour sur les joies et les galères de l'IA locale dans le browser.
Core Web Vitals en 2026 : pourquoi on s'acharne encore à optimiser
Les réseaux sont rapides, les navigateurs sont puissants. Pourtant, on continue à traquer chaque milliseconde. Retour su…
Réno Claire, 18 mois après : TDD, montée de version et coordination d'IAs
18 mois après le lancement de Réno Claire, retour sur ce qui a tenu : le test-driven development sur les formules Excel,…
Server Actions en production : formulaires multi-étapes et uploads avec Next.js 14
Retour d'expérience sur l'utilisation des Server Actions en production depuis six mois. Formulaires multi-étapes, upload…
Next.js 14 et App Router : construire un simulateur de rénovation énergétique
Architecture d'un simulateur de rénovation énergétique en Next.js 14 pour un acteur de la rénovation en Ile-de-France. S…
Envoyer 100 000 push notifications sans Pushwoosh — une Cloud Function Firebase et du parallélisme
Comment on a construit une Cloud Function Firebase pour envoyer des push notifications en masse en contournant les limit…
Réécrire from scratch l'app leader des bons plans — architecture React Native pour la durée
Comment on a repensé et reconstruit l'application chocobonplan en React Native avec TypeScript, un state management Rema…
Pourquoi Ruby on Rails reste pertinent en 2022
Rails n'est pas mort — loin de là. Retour sur les raisons pour lesquelles nous continuons à le recommander pour les proj…
Reconnaissance vocale iOS vs Android — Matcher des noms d'artistes en React Native
Les API de reconnaissance vocale d'iOS et Android ne fonctionnent pas de la même manière. Sur iOS, on peut guider le mot…
GraphQL managé et cloud functions : retour sur notre mission chez Cajoo
Comment un stack GraphQL managé avec Hasura, des cloud functions AWS Lambda et un client généré nous permettent d'accomp…
Bl!ndt?st — Consolider une app React Native de blind test multijoueur en temps réel
Retour d'expérience sur une mission de renfort dev pour Bl!ndt?st, un jeu de blind test multijoueur en temps réel. Restr…
Polyy — construire un réseau social de l'achat-vente de chevaux
Retour technique sur Polyy, un réseau social et marketplace pour l'achat et la vente de chevaux. Architecture trois-tier…
NestJS en production — injection de dépendances et structuration d'un backend TypeScript
Retour sur notre utilisation de NestJS 7 en production : injection de dépendances inspirée d'Angular, structuration modu…
Afficher 10 000 points à 60fps — Graphes temps réel en Canvas pour l'acquisition scientifique
Retour d'expérience sur la construction d'un moteur de graphes Canvas pour une app d'acquisition scientifique. Pourquoi …
Intégrer des capteurs scientifiques custom dans Cordova et Electron — C++, node-gyp et protocole maison
Comment on a intégré des capteurs scientifiques Bluetooth avec un protocole propriétaire dans une app hybride Cordova/El…
Remplacer une app Delphi par une app hybride — Architecture Cordova/Electron pour l'acquisition scientifique
Comment on a architecturé une application hybride Cordova/Electron pour remplacer un logiciel Delphi d'acquisition de do…
MyMove — comparer les VTC en temps réel avec des microservices sur Cloud Run
Comment on a repris et consolidé MyMove, un comparateur de tarifs VTC (Uber, Kapten, Bolt, G7) basé sur une architecture…
Pourquoi on aime autant Rails — l'écosystème qui fait gagner des semaines
Rails en 2019, c'est un framework avec quinze ans de gems matures derrière lui. On compare avec l'écosystème Node.js du …
Uploader des vidéos lourdes depuis React Native
Retour sur un proof of concept d'upload de vidéos volumineuses depuis React Native : compression via react-native-video-…
Remplacer un outil DOS par un back-office Rails pour une boulangerie parisienne
Comment on a abordé la migration d'un outil de gestion de commandes tournant sous DOS vers un back-office web en Rails 5…
Le back-office React + TypeScript du pop-up store Make My Lemonade
Comment on a construit le back-office d'administration du catalogue patrons/tissus avec Create React App, TypeScript, Ma…
Une app iPad pour le pop-up store Make My Lemonade — choisir sa coupe et son tissu avec Expo et Firebase
Comment on a construit une app tablette en React Native (Expo SDK 28) pour une marque de mode DIY : catalogue de patrons…
Du tracking vidéo pour un baby-foot — Cinder, OpenCV et le plaisir de refaire du C++
Comment on a construit un module de tracking vidéo pour le baby-foot Tekbak : détection de balle par segmentation couleu…
ProFeel — un serveur stub Swagger pour avancer sans API
Retour sur ProFeel, une app Ionic de profilage professionnel. L'API tierce n'existait qu'en production. On a monté un st…
Sircle Android — RxJava vs RxSwift, retour sur le portage d'une app réactive
Après la version iOS de Sircle en RxSwift, on a attaqué le portage Android en Java 8 avec RxJava 2. Cet article compare …
Sircle — construire un réseau social géolocalisé en Swift 3 avec RxSwift et Realm
Retour technique sur Sircle, une app iOS de networking professionnel pour les agences marketing. Architecture RxSwift-fi…
Remplacer 10 000 lignes de regex par une machine à états configurable
Retour sur la réécriture d'un outil CLI d'analyse de logs pour GE Healthcare. L'ancien outil enchaînait des regex fragil…
Rails 5 API : modéliser les disponibilités d'une marketplace de services
Comment on a construit l'API Rails 5 d'une marketplace multi-services : calcul de disponibilités en temps réel, réservat…
Webpack, Babel et ES6 dans une app Ionic — un pipeline JS moderne en 2016
Retour technique sur la mise en place d'un pipeline JavaScript moderne — Webpack, Babel 6, modules ES6, SCSS et PostCSS …
Hively — construire une marketplace de services en Ionic et Rails 5
Comment on a livré une app mobile de mise en relation entre particuliers et prestataires de services, avec Ionic 1, Angu…
Une app iPad native en Swift pour la location de véhicules événementiels
Protocoles avec associated types, génériques pour le réseau, vues custom CoreGraphics — les patterns Swift qui ont struc…
Intégrer une API tierce dans une app Rails
Authentification JWT, payloads imbriqués, gestion d'erreurs — les leçons tirées de l'intégration d'une API de réservatio…
TrueSkill — un classement bayésien pour le baby-foot connecté
Comment on a ajouté un classement TrueSkill en alternative au système de points classique sur la plateforme Foosball Soc…
Simone.paris — pourquoi Rails pour le backend d'une app iOS
Retour d'expérience sur le backend Rails de l'app Simone.paris : API Grape pour iOS, machine à états AASM, Service Objec…
Simone.paris — développer une app iOS soignée en équipe
Retour d'expérience sur le développement de l'app Simone.paris pour iOS : architecture réseau avec le pattern Decorator,…
NavCar — une app de VTC en Corse, en natif iOS et Rails
Retour d'expérience sur la construction d'une app de réservation de VTC en Corse : iOS natif Objective-C, backend Rails …
ionic : pourquoi une agence native s'intéresse à l'hybride
Nous sommes spécialisés en développement natif iOS et Android. Pourtant, depuis six mois, on expérimente Ionic. Retour s…
Le Rails derrière le baby-foot
Comment on a structuré une application Rails 4 pour gérer des baby-foots connectés, du badge RFID au classement ELO — av…
Encoder les règles d'un baby-foot dans un AST
Comment on a conçu un moteur de règles configurable pour le baby-foot Tekbak — un AST évalué en Ruby qui simule chaque c…
Afficher du texte sur 7 pixels de haut
Comment on a recodé un pipeline de rendu typographique complet — FreeType, kerning, scrolling — pour piloter des affiche…
Écrire une extension C pour Ruby sur de l'embarqué
Comment nous avons connecté Ruby à une électronique custom via une extension C pour piloter des capteurs I2C sur un Beag…
Un sujet vous interesse ?
Premier echange gratuit, 30 min, pour comprendre ou ca bloque et comment repartir proprement.
Nous contacter