Automate Your Workflow With Git Hooks

Git Hooks and Husky can be used to check the quality of your code, automate repetitive tasks or standardize commit messages.

Anthony Rimet
February 27, 2024
Read More

Latest posts

Build Type-Safe SQL Queries With Kysely

From database to query results, the Kysely query builder embraces strong typing with TypeScript.

Guillaume Pierson
February 14, 2024

Write JavaScript Shell Scripts With Bun

JS developers can now write shell scripts with good performance with Bun Shell. This promising tool is still under development.

Anthony Rimet
February 05, 2024

Demystifying Monitoring: From Basics to OpenTelemetry

How to make sure that our application works well and catch any problem ASAP? Discover monitoring, from basic concepts to OpenTelemetry, a very promising open-source project.

Cindy Manel
January 31, 2024

New client-side hooks coming to React 19

Data fetching and form handling are about to get easier in React, and not just in SSR apps.

François Zaninotto
January 23, 2024

Continuous Migration: Keeping Users Uninterrupted

Struggling with disruptive app migrations? Discover a systematic strategy that enables progressive migration while maintaining a consistent and uninterrupted user interface.

Cindy Manel
January 18, 2024

Documentation: The Key Enabler For Open-Source Success

Why investing in documentation pays off, and how to write great documentation, based on our experience with react-admin.

François Zaninotto
January 10, 2024

Crystal clear reviews using Conventional Comments

If you've ever struggled when writing or reading a review, here's a way to simplify this essential process.

Arnaud Tilbian
January 05, 2024

The View Transition API: A New Way to Animate Page Transitions

A new, experimental API has landed on chromium-based browsers. It allows us to have better control of the transition between two pages.

Guillaume Pierson
December 21, 2023

Optical Character Recognition on Handwritten Documents

What is the state of the art in OCR of handwritten historical documents? We tested Open Source libraries and Cloud-based solutions, met researchers in the domain, and learned a lot in the process.

Jonathan ARNAULT
December 11, 2023

Selling Open-Source Products Requires Sales & Marketing Skills

In our journey to monetize a popular open-source project, we realized that mere engineering skills weren't sufficient. Acquiring sales and marketing expertise was essential to make our project profitable.

Jérémie GrosseteteFrançois Zaninotto
& December 08, 2023

Older posts


Using React-Admin With Your Favorite UI Library

November 28, 2023 by

From Open-Source Project to Marketable Product

November 22, 2023 by &

Displaying Test Screenshots in GitHub Actions

November 20, 2023 by &

Anatomy Of A Profitable Open-Source Project

November 13, 2023 by &

Turning Open-Source Into Profit: Our Journey

November 08, 2023 by &

Milestones: The Secret Trick To Better Dependency Management

October 26, 2023 by

Can You Fall In Love With An AI?

October 19, 2023 by

React Admin v4 Advanced Recipes: Creating a Record Related to the Current One

October 12, 2023 by

React Admin October 2023 Update

October 02, 2023 by

Interview : LODEX, un outil open-source au service de la recherche

September 20, 2023 by &

React-Admin Authentication Using Active Directory

September 13, 2023 by

The current state of WASI in containers space

September 06, 2023 by

Building AI-Augmented Apps With React-Admin

August 09, 2023 by

How Marmelab Transformed Accor's IT Architecture to Boost Revenue and Customer Experience

August 03, 2023 by

Building a Kanban Board With React

July 28, 2023 by

React-Admin vs Refine: Feature Comparison

July 04, 2023 by

Internationalization with Polyglot.js and NestJS

June 27, 2023 by

React Admin June 2023 Update

June 13, 2023 by

Tech, Crêpes, et Éthique. Marmelab était à MiXiT !

June 12, 2023 by & &

Building Artificial Consciousness With GPT-3

June 06, 2023 by

Is React Having An Angular.js Moment?

June 05, 2023 by

Convert GIF to WebM Files to Reduce the Carbon Footprint of Your Website

June 01, 2023 by

User-Centric Testing using React Testing Library

May 26, 2023 by

Porting React-Admin to Solid

May 11, 2023 by

Des pratiques commerciales open-source ?

May 05, 2023 by

Building A Custom Tags Selector With React-Admin

April 26, 2023 by

What Is The Carbon Footprint Of Data Centers?

April 12, 2023 by

Reducing Our Impact: Marmelab's Pursuit of a Smaller Carbon Footprint

April 06, 2023 by

Let's Play Poker (Planning)

March 30, 2023 by

Using AI To Pilot A Racing Car With The Voice

March 23, 2023 by

Creating Custom Form Layouts With React Admin

March 22, 2023 by

Building A Graphical User Interface in the Terminal using Go

March 13, 2023 by

React Admin March 2023 Update

March 01, 2023 by

Using Copilot to Review Code And Fund Open-Source Projects

February 27, 2023 by

Introducing Acme Refrigerator HelpDesk, A New React-Admin Demo

February 23, 2023 by

Are No-Code Tools A Good Choice For Developers?

February 17, 2023 by

React Without useEffect

February 01, 2023 by

Rive: Animate Web UIs with State Machines

January 30, 2023 by

Marmelab Celebrates 10 Years Of Digital Innovation

January 23, 2023 by

EdgeDB, A New Competitor In The Database Area

January 19, 2023 by

useAsyncEffect: The Missing React Hook

January 11, 2023 by

Securely Managing Database Secrets With Vault

January 05, 2023 by


How To Implement Web Login In A Private NPM Registry

December 22, 2022 by

Multi-Tenant Single-Page Apps: Dos and Don'ts

December 14, 2022 by

React Admin December 2022 Update

December 08, 2022 by

Building a B2B app with Strapi and React-Admin

November 28, 2022 by

Au coeur du Volcamp

November 17, 2022 by &

GreenFrame Is Open-Source

November 09, 2022 by

Niji & GreenFrame, exemple d'un partenariat réussi

November 03, 2022 by &

Writing A React-Admin Data Provider For Offline-First Applications

October 26, 2022 by

Copilot Made Me An Augmented Programmer

October 19, 2022 by

React-admin, Now On Discord

October 12, 2022 by &

Create a CRUD API In Minutes With PostgREST

October 05, 2022 by

Convertir un projet Docker Compose en Kubernetes, partie 2

September 28, 2022 by

React I Love You, But You're Bringing Me Down

September 20, 2022 by

Convertir un projet Docker Compose en Kubernetes, partie 1

September 12, 2022 by

React Admin September 2022 Update

September 05, 2022 by

IA: Comment se faire battre par sa propre création

September 02, 2022 by

Les ~10 préceptes de la revue de code

August 25, 2022 by

LorrainJS: la librairie qui parle Lorrain

July 20, 2022 by &

How Caritas Uses React-Admin To Accelerate Their Intranet Development

July 07, 2022 by

React-admin Reached 20,000 Stars On GitHub

July 06, 2022 by &

Installing React-Admin In A Remix App

July 01, 2022 by &

A State Management Tour: Proxy State With Valtio

June 23, 2022 by

De la programmation orientée objet à la programmation fonctionnelle

June 20, 2022 by

Deploying A Web App With Docker And AWS Fargate

June 08, 2022 by

React-admin Enterprise Edition, Now In V4

June 07, 2022 by

Rendre Les Scripts Bash Lisibles Par Un Dev JS

May 05, 2022 by

Déployer un site statique client-side via Amazon S3

April 27, 2022 by

Introducing React-admin V4

April 13, 2022 by

React-admin V4: Switching Form Library

April 12, 2022 by

React-admin V4: Build Your Own Framework

April 11, 2022 by

React-admin V4: Goodbye, Redux!

April 08, 2022 by

React-admin V4: Persistent Preferences

April 05, 2022 by

Digital Carbon Footprint: The Current State of Measuring Tools

April 05, 2022 by &

React-admin V4: No More Props Injection

March 30, 2022 by

Implementing Path-Finding On A Hexagonal Board

March 22, 2022 by

Bull: Traitements asynchrones en Node.js

March 09, 2022 by &

Comment réduire l’empreinte écologique d’un service numérique ?

March 02, 2022 by

Why You Should Upgrade To Material-UI V5

February 27, 2022 by

Dessiner un logo en LOGO, c'est possible ?

February 23, 2022 by

How We Write For The Web

February 10, 2022 by

How to Run React-Admin On Next.Js

February 02, 2022 by &

Réduire l'empreinte carbone d'un site web en pratique : le cas

January 27, 2022 by &

Intégration: dépasser la peur de l'échec

January 20, 2022 by

Media Websites: 70% of the Carbon Footprint Caused by Ads and Stats

January 17, 2022 by &

Decarbonization In The Media Industry: GreenFrame Helps France.TV To Reduce Its Digital Emissions

January 13, 2022 by

Un dev chez les Product Owners

January 11, 2022 by

Marmelab Welcomes Aníbal To The React-Admin Core Team

January 05, 2022 by


Sites médias : 70% de l'empreinte carbone vient des pubs et des stats

December 20, 2021 by &

Building A Retro React-Admin Theme For Fun And Profit

December 15, 2021 by

Speed up the loading of your pages by using variable fonts

December 08, 2021 by

A Brighter Future For The Web? Exploring Solid

December 01, 2021 by

We've sold 10,000$ Worth Of Ether And Donated It All To Charities

November 26, 2021 by

Vers la sobriété numérique, la conférence

November 18, 2021 by

Improving User Experience With A Mouse In A CLI Application

November 17, 2021 by

How To Become A React-admin Grandmaster In 237 Easy Steps

November 10, 2021 by

On a terminé le FALL CHALLENGE 2021

November 09, 2021 by & &

Using ESI elements with Next.js

November 04, 2021 by

Marmelab souhaite la bienvenue à Anthony et Alexandre

October 27, 2021 by

Using An SQLite Database Live In React-Admin

October 14, 2021 by

Discovering Rust by Playing the Quoridor Board Game

September 30, 2021 by &

React Admin Enterprise Edition - September 2021 Update

September 22, 2021 by

Onboarding chez Marmelab: Une symfony en une semaine

September 15, 2021 by

React Admin September 2021 Update

September 08, 2021 by &

Testing React.js Hooks And Components: The Missing Piece

August 31, 2021 by

Overriding the Create-React-App Webpack Configuration Without Ejecting

July 22, 2021 by

Towards Digital Sustainability, A Keynote

June 29, 2021 by

Behold the Power of Laziness With Functional Programming

June 23, 2021 by

I Tested React Server Components And I'm Not A Fan (Yet).

June 15, 2021 by

Marmelab Helps Broadcom Build A Customizable Developer Portal

June 08, 2021 by

Become a {javascript} ninja with Ninja Coder

May 27, 2021 by &

Introducing Atomic CRM, A New React-Admin Demo

May 06, 2021 by

GreenFrame: Calculating The Impact of Cache on MediaWiki Carbon Emissions

April 29, 2021 by

Retour d'une intégration partie 2/2 : Le pentago en Go et React Native

April 22, 2021 by

Comment contrôler le temps dans un container Docker

April 15, 2021 by What is the carbon footprint of a web page?

April 08, 2021 by

React-Admin April 2021 Update

April 07, 2021 by

FOSS interview : React-admin avec Gildas

April 06, 2021 by &

Onboarding chez Marmelab : 5 semaines pour faire un jeu - Semaine 1

March 31, 2021 by

Retour d'une intégration partie 1/2 : Le pentago en Python et Symfony

March 17, 2021 by

Marmelab souhaite la bienvenue à Guillaume et Clément

March 09, 2021 by

FOSS interview : stretch-discord avec Maxime et Pierre

March 08, 2021 by & &

Argos: Comparing the Energy Consumption of Two Web Stacks

March 04, 2021 by

FOSS interview : comfygure avec Kevin

February 26, 2021 by

Tests d'intégration en Node.js: de Supertest à Frisby.js

February 19, 2021 by

Validator assemble! Functors in Action

February 12, 2021 by

React Admin Enterprise Edition - February 2021 Update

February 04, 2021 by

React Admin February 2021 Update

February 02, 2021 by &

Histoire d'une migration chez Arte, partie 3/3 : action

January 22, 2021 by

The True Power Of Monoids: How To Combine Validators

January 21, 2021 by

Histoire d'une migration chez Arte, partie 2/3 : la mise en place

January 13, 2021 by

Histoire d'une migration chez Arte, partie 1/3 : le contexte

January 07, 2021 by

Marmelab souhaite la bienvenue à Pascal

January 06, 2021 by


React Admin v3 Advanced Recipes: Managing User Profile

December 14, 2020 by

Alleviate the health problems of sitting all-day

December 09, 2020 by

Argos: Measure The Carbon Footprint Of Software, Improve Developer Practices

November 26, 2020 by

Plugging React-Admin To Google Sheets

November 05, 2020 by

Sunsetting PHP Faker

October 21, 2020 by

React Admin Enterprise Edition - October 2020 Update

October 21, 2020 by

Into The Labyrinth With x3dom

October 16, 2020 by

React Admin October 2020 Update

October 07, 2020 by

Building A Chat Application Using SvelteJS and SSE

October 02, 2020 by

Developers Can Save The Planet, Part II: The Solution

September 22, 2020 by

Developers Can Save The Planet, Part I: The Problem

September 21, 2020 by

React Admin v3 Advanced Recipes: Creating a Record Related to the Current One

September 16, 2020 by

Changing The Look And Feel Of React-Admin Without JSX

September 11, 2020 by

Introducing React-Admin Enterprise Edition

September 02, 2020 by

Handling JWT in Admin Apps the Right Way

July 02, 2020 by

Marmelab est lauréat du Challenge Sobriété Numérique 2020

June 22, 2020 by &

Building A Web Application In 15 Minutes Using StrapiJS And NextJS

June 18, 2020 by

React Admin 3.6: Easier Customization Of Edit and Create Views

June 09, 2020 by

Modsir : Un modèle SIR pour simuler l'épidémie de COVID

June 03, 2020 by &

Gremlins.js 2: The New Batch

June 02, 2020 by &

Nettoyage de printemps de nos projets open-source

May 13, 2020 by

Marmelab souhaite la bienvenue à Jérémie

April 30, 2020 by

Marmelab recrute en télétravail

April 28, 2020 by

React Admin v3 Advanced Recipes - Adding Related Records Inline With Custom Forms

April 27, 2020 by

OpenAPI : un contrat pour vos API.s

April 17, 2020 by

Goridor: The Gopher Rest

April 09, 2020 by

Usine partagée : des visières contre le Covid-19

March 31, 2020 by

OpenAPI dans la jungle du REST

March 26, 2020 by

React Admin 3.3: Faster Navigation And Reduced Footprint Thanks To Application Cache

March 06, 2020 by

Quoridor: Coffee time for the mouse

March 04, 2020 by

Star Wars Agile Retrospectives: The Starfish and the Death Star

February 28, 2020 by

Programming A Space Invader In OCaml and OpenGL: Lessons Learned

February 21, 2020 by

Le temps réel avec GraphQL: Facile ou pas facile?

February 13, 2020 by

Getting The Ball Rolling With DeviceMotion

February 05, 2020 by

Why and How We Made Our Website Privacy Friendly

January 28, 2020 by &

Mocking an API with Polly.js

January 23, 2020 by & &

Amnesty International: Taking advantage of the Lean Startup methodology to prove ourselves wrong

January 16, 2020 by

Quixo en React isomorphic avec Next.js

January 15, 2020 by

Marmelab Helps WALLIX Prototype A Zero Knowledge App For Session Management

January 08, 2020 by


React Admin v3.1: Make Your Own Admin

December 18, 2019 by

Quixo sur mobile grâce à React-native !

December 11, 2019 by

Build Your Own Design System With StencilJS

December 06, 2019 by

Si Darwin avait raison, l'agilité fonctionne par hasard

November 26, 2019 by

Au secours, mon poste ne démarre plus !

November 21, 2019 by

React Admin v3: Improved Developer Experience Thanks to React Hooks

November 20, 2019 by

Web Worker à l'école des sorciers

November 20, 2019 by

Faker 1.9: The Best Faker Data Generator... Yet

November 14, 2019 by

Le server-side rendering sans framework: pas si dur!

November 08, 2019 by

Jouer seul à Quixo grâce à un bot en Golang

October 30, 2019 by

Quoridor: Playing A Maze Game On The Console With Python

October 24, 2019 by

Using Firebase for Backend-as-a-Service: Pros and Cons

October 23, 2019 by &

React Admin v3: Zoom in the UI Changes

October 15, 2019 by

React Admin v3: Zoom in the Data Layer

October 14, 2019 by

React Admin v3: Zoom in the Styling Layer

October 10, 2019 by

React Admin v3: Zoom in the i18n Layer

October 10, 2019 by

React Admin v3: Zoom in the Authentication Layer

October 09, 2019 by

Amnesty International: Designing the Experience

October 07, 2019 by

Marmelab souhaite la bienvenue à Matthieu

October 03, 2019 by

CouchDB, The Open-Source Cloud Firestore Alternative?

September 25, 2019 by

Load Testing Node.js App with

September 17, 2019 by

Helping Amnesty International Target a New Audience

August 28, 2019 by

Créer son propre loader Webpack

August 27, 2019 by

Ma seconde semaine d'intégration: Jouons à deux avec Symfony

July 25, 2019 by

WebAuthn: Server and Client-Side Strong Auth Library For JavaScript

June 24, 2019 by

Symfony for Quarto in Allegro! My third integration week at Marmelab.

June 19, 2019 by

Quixo, le morpion de l'intégration: Un jeu en python sur console

June 14, 2019 by

Marmelab souhaite la bienvenue à Pierre

June 13, 2019 by

On apprend quoi pendant un stage chez Marmelab?

June 05, 2019 by

Releasing Comfygure 1.0

May 28, 2019 by

Agile Lean Ireland 2019: The Conference You Wish You Had Gone To

May 22, 2019 by

Créer et publier une application web sur Linux grâce aux snaps

May 15, 2019 by

The Innovator's Dilemma: How Can You Loose When You Seem to Be Winning?

April 30, 2019 by

Build Augmented Reality Applications With React-Native

April 25, 2019 by

Property Based Testing in Javascript

April 18, 2019 by

What Can React Developers Learn From The Vue.Js Ecosystem?

April 03, 2019 by &

Supplying your own Defaults to React Admin

March 27, 2019 by

Functional Programming in JavaScript, Part 4: The Art of Chaining Different Monads

March 20, 2019 by

React-admin 2.8: Query Component, Data Loss Protection, Top Bar Customization, And More

March 15, 2019 by

React Has Built-In Dependency Injection

March 13, 2019 by

React Admin Advanced Recipes: User Profile

March 07, 2019 by

First-class End-to-end Testing on Meteor

February 28, 2019 by

Comment mettre en place les migrations avec Hasura

February 21, 2019 by

How To Improve Postgres Performance: Our Tips and Tricks

February 13, 2019 by &

React Admin Advanced Recipes: Creating and Editing a Record From the List Page

February 07, 2019 by

User Stories Are Overrated

January 31, 2019 by

HTTPS In Development: A Practical Guide

January 23, 2019 by

Building a Timeline With React, Storybook, Material-UI, and React-Admin

January 17, 2019 by

React-admin 2.6: Datagrid Improvements, UI Polish, and Better Styling

January 09, 2019 by


Twelve-Factor Applications: How Do You Validate Your Configuration?

December 05, 2018 by

Minutes of DotJS 2018

November 27, 2018 by &

Vous aimez les legos ? React est fait pour vous !

November 22, 2018 by

A Developer's Diary: Building A Notes Taking App in Shell

November 08, 2018 by

Inspiring Talks + Awesome Networking = BlendWebMix 2018

November 02, 2018 by

React Multipass Render Pattern

October 18, 2018 by

React-admin 2.4: Field Guessers, Aside, DateTimeInput, Better Accessibility... and TypeScript!

October 18, 2018 by

Découverte du langage Go pour ma deuxième semaine d'intégration : Go Go Quarto Ranger !

October 09, 2018 by

How to Create a Carousel and a Wizard Form With React and CSS-in-JS

October 04, 2018 by & &

Hacktoberfest 2018: Come Contribute To OSS With Us!

October 01, 2018 by

Functional Programming in JavaScript, Part 3: Introduction to Functors and Monads

September 26, 2018 by

React-admin 2.3: Better UI, User Menu, Tree Shaking, Tree List, and more!

September 07, 2018 by

Agile Integration: Passing On Culture to Newcomers in 5 Weeks

September 05, 2018 by

React Admin Advanced Recipes - Adding Related Records Inline With Custom Forms

August 27, 2018 by

React-admin 2.2 Is Out With Export, Clone, And More

August 16, 2018 by

Jouer pour mieux travailler : Le Quarto

July 20, 2018 by

Automating Accessibility and Performance Testing with Puppeteer and AxeCore

July 18, 2018 by &

Marmelab souhaite la bienvenue à Julien M

July 16, 2018 by

DotAI 2018: Machine Learning for Humans

July 12, 2018 by

React Admin Advanced Recipes: Creating a Record Related to the Current One

July 09, 2018 by

React-admin 2.1 Is Out

July 02, 2018 by

Managing State in React: Redux or not Redux?

June 27, 2018 by &

Lean from the Trenches: Managing Large Scale Projects with Kanban

June 21, 2018 by

Get Rid Of Toxic Bugs On Your Apps With Detox!

June 05, 2018 by

Site Reliability Engineering: Google's Secret Sauce For High Availability And Happy Ops

May 24, 2018 by

Admin-on-rest Becomes React-admin, and Gets a Major 2.0 Release

May 18, 2018 by

M&M's: Agile Retrospective For Gloutons

April 23, 2018 by

Functional Programming in JavaScript, Part 2: The Monoid

April 18, 2018 by

"Confessions of a Public Speaker", a Fun and Inspiring Guide for Giving Better Talks!

April 16, 2018 by

#play14 Luxembourg 2018: The Serious Games Unconference Turns 5

April 12, 2018 by

Enjoy Painless Typing With ReasonML!

April 09, 2018 by

Finding And Fixing Node.js Memory Leaks: A Practical Guide

April 03, 2018 by