Highlight Search Terms In Page Content

Leverage the CSS Custom Highlight API to highlight words within a larger body of text. This technique is compatible with all JS frameworks.

François Zaninotto
François ZaninottoApril 23, 2024
Read More

Latest posts

LIT: A Lightweight Library For Building Web Components

To explore the LIT framework, I built a framework-agnostic accordion component that I managed to reuse in React and Vue.

Anthony Rimet
Anthony RimetApril 18, 2024

Trigger Animations On Scroll With GSAP

The GSAP ScrollTrigger plugin facilitates scroll-based animations like parallax scrolling and slide-in panels. Learn how to use it to create engaging user experiences.

Jean-Baptiste Kaiser
Jean-Baptiste KaiserApril 11, 2024

Synchronize Backend and Frontend Types With tRPC

Experience seamless type synchronization across the stack with tRPC, freeing developers from tedious manual typing tasks.

Thibault Barrat
Thibault BarratApril 04, 2024

SnowCamp 2024 : Les talks à ne pas manquer

Nous avons assisté à cette très bonne conférence tech généraliste. Voici nos talks préférés.

Arnaud Tilbian
Arnaud TilbianMarch 29, 2024

GSAP Basics: Dive into Web Animations

GSAP is a powerful and open-source JS animation library. Here are the essentials to get you started.

Jean-Baptiste Kaiser
Jean-Baptiste KaiserMarch 27, 2024

Cut Through The Noise: AI-Curated News Digests

With so many sources of information available, it's easy to become overwhelmed by information overload. Let's use AI to select and summarize the most relevant articles.

Adrien Guernier
Adrien GuernierMarch 21, 2024

OpenTelemetry in Practice: Instrumenting JavaScript Apps for Tracing

We've enabled OpenTelemetry on some of our Node.js APIs and their React client, and it was surprisingly easy. The full-stack traces let us debug faster. This hands-on guide explains how to do it.

Cindy Manel
Cindy ManelMarch 14, 2024

React Admin March 2024 Update

AG Grid, Versioning, Date inputs, improved providers, new themes, a new demo, Daisy UI, Cognito... and a YouTube channel!

Gildas GarciaFrançois Zaninotto

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
Anthony RimetFebruary 27, 2024

Build Type-Safe SQL Queries With Kysely

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

Guillaume Pierson
Guillaume PiersonFebruary 14, 2024

Older posts

2023

Using React-Admin With Your Favorite UI Library

November 28, 2023 by Gildas Garcia

Can You Fall In Love With An AI?

October 19, 2023 by Thibault Barrat

React Admin October 2023 Update

October 02, 2023 by Gildas Garcia

React-Admin Authentication Using Active Directory

September 13, 2023 by Adrien Guernier

Building a Kanban Board With React

July 28, 2023 by Jean-Baptiste Kaiser

Internationalization with Polyglot.js and NestJS

June 27, 2023 by Cindy Manel

React Admin June 2023 Update

June 13, 2023 by François Zaninotto

User-Centric Testing using React Testing Library

May 26, 2023 by Jonathan ARNAULT

Porting React-Admin to Solid

May 11, 2023 by Gildas Garcia

What Is The Carbon Footprint Of Data Centers?

April 12, 2023 by Thibault Barrat

Let's Play Poker (Planning)

March 30, 2023 by Julien Mattiussi

React Admin March 2023 Update

March 01, 2023 by Gildas Garcia

React Without useEffect

February 01, 2023 by François Zaninotto

useAsyncEffect: The Missing React Hook

January 11, 2023 by François Zaninotto

2022

How To Implement Web Login In A Private NPM Registry

December 22, 2022 by Jean-Baptiste Kaiser

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

December 14, 2022 by François Zaninotto

React Admin December 2022 Update

December 08, 2022 by Jean-Baptiste Kaiser

Building a B2B app with Strapi and React-Admin

November 28, 2022 by Anthony Rimet

Au coeur du Volcamp

November 17, 2022 by Arnaud Tilbian & Julien Mattiussi

GreenFrame Is Open-Source

November 09, 2022 by François Zaninotto

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

Create a CRUD API In Minutes With PostgREST

October 05, 2022 by Anthony Rimet

React Admin September 2022 Update

September 05, 2022 by François Zaninotto

LorrainJS: la librairie qui parle Lorrain

Installing React-Admin In A Remix App

Deploying A Web App With Docker And AWS Fargate

June 08, 2022 by Cindy Manel

Introducing React-admin V4

April 13, 2022 by François Zaninotto

React-admin V4: Switching Form Library

April 12, 2022 by François Zaninotto

React-admin V4: Build Your Own Framework

April 11, 2022 by François Zaninotto

React-admin V4: Goodbye, Redux!

April 08, 2022 by François Zaninotto

React-admin V4: Persistent Preferences

April 05, 2022 by François Zaninotto

React-admin V4: No More Props Injection

March 30, 2022 by François Zaninotto

Bull: Traitements asynchrones en Node.js

March 09, 2022 by Guillaume Billey & Anthony Rimet

Why You Should Upgrade To Material-UI V5

February 27, 2022 by François Zaninotto

How We Write For The Web

February 10, 2022 by François Zaninotto

How to Run React-Admin On Next.Js

February 02, 2022 by Anibal Svarcas & Adrien Amoros

Un dev chez les Product Owners

January 11, 2022 by Guillaume Billey

2021

Speed up the loading of your pages by using variable fonts

December 08, 2021 by Clément Le Biez

A Brighter Future For The Web? Exploring Solid

December 01, 2021 by Gildas Garcia

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

November 26, 2021 by François Zaninotto

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

November 18, 2021 by François Zaninotto

Using ESI elements with Next.js

November 04, 2021 by Alexis Janvier

Using An SQLite Database Live In React-Admin

October 14, 2021 by Alexis Janvier

Discovering Rust by Playing the Quoridor Board Game

September 30, 2021 by Matthieu Chaffotte & Julien Mattiussi

Towards Digital Sustainability, A Keynote

June 29, 2021 by François Zaninotto

Introducing Atomic CRM, A New React-Admin Demo

May 06, 2021 by François Zaninotto

GreenFrame.io: What is the carbon footprint of a web page?

April 08, 2021 by François Zaninotto

React-Admin April 2021 Update

April 07, 2021 by François Zaninotto

Argos: Comparing the Energy Consumption of Two Web Stacks

March 04, 2021 by Pierre-Etienne Moreau

Validator assemble! Functors in Action

February 12, 2021 by Thiery Michel

Marmelab souhaite la bienvenue à Pascal

January 06, 2021 by François Zaninotto

2020

React Admin v3 Advanced Recipes: Managing User Profile

December 14, 2020 by Gildas Garcia

Plugging React-Admin To Google Sheets

November 05, 2020 by Adrien Amoros

Sunsetting PHP Faker

October 21, 2020 by François Zaninotto

Into The Labyrinth With x3dom

October 16, 2020 by Thiery Michel

React Admin October 2020 Update

October 07, 2020 by François Zaninotto

Developers Can Save The Planet, Part II: The Solution

September 22, 2020 by François Zaninotto

Developers Can Save The Planet, Part I: The Problem

September 21, 2020 by François Zaninotto

Changing The Look And Feel Of React-Admin Without JSX

September 11, 2020 by Adrien Amoros

Handling JWT in Admin Apps the Right Way

July 02, 2020 by Alexis Janvier

Marmelab recrute en télétravail

April 28, 2020 by François Zaninotto

Goridor: The Gopher Rest

April 09, 2020 by Matthieu Chaffotte

Getting The Ball Rolling With DeviceMotion

February 05, 2020 by Thiery Michel

Quixo en React isomorphic avec Next.js

January 15, 2020 by Pierre Haller

2019

React Admin v3.1: Make Your Own Admin

December 18, 2019 by François Zaninotto

Quixo sur mobile grâce à React-native !

December 11, 2019 by Pierre Haller

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

October 30, 2019 by Pierre Haller

React Admin v3: Zoom in the UI Changes

October 15, 2019 by François Zaninotto

React Admin v3: Zoom in the Data Layer

October 14, 2019 by François Zaninotto

React Admin v3: Zoom in the Styling Layer

October 10, 2019 by François Zaninotto

React Admin v3: Zoom in the i18n Layer

October 10, 2019 by François Zaninotto

React Admin v3: Zoom in the Authentication Layer

October 09, 2019 by François Zaninotto

Amnesty International: Designing the Experience

October 07, 2019 by Florian Ferbach

CouchDB, The Open-Source Cloud Firestore Alternative?

September 25, 2019 by Julien Demangeon

Load Testing Node.js App with Flood.io

September 17, 2019 by Kévin Maschtaler

Helping Amnesty International Target a New Audience

August 28, 2019 by Florian Ferbach

Créer son propre loader Webpack

August 27, 2019 by Thiery Michel

On apprend quoi pendant un stage chez Marmelab?

June 05, 2019 by Alexandra Martin

Releasing Comfygure 1.0

May 28, 2019 by Kévin Maschtaler

Supplying your own Defaults to React Admin

March 27, 2019 by Gildas Garcia

React Has Built-In Dependency Injection

March 13, 2019 by François Zaninotto

React Admin Advanced Recipes: User Profile

March 07, 2019 by Gildas Garcia

First-class End-to-end Testing on Meteor

February 28, 2019 by Florian Ferbach

User Stories Are Overrated

January 31, 2019 by Florian Ferbach

HTTPS In Development: A Practical Guide

January 23, 2019 by Kévin Maschtaler

2018

Minutes of DotJS 2018

November 27, 2018 by Julien Mattiussi & Maxime Richard

Vous aimez les legos ? React est fait pour vous !

November 22, 2018 by François Zaninotto

React Multipass Render Pattern

October 18, 2018 by Gildas Garcia

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

August 16, 2018 by François Zaninotto

Jouer pour mieux travailler : Le Quarto

July 20, 2018 by Julien Mattiussi

React-admin 2.1 Is Out

July 02, 2018 by François Zaninotto

Functional Programming in JavaScript, Part 2: The Monoid

April 18, 2018 by Thiery Michel

Enjoy Painless Typing With ReasonML!

April 09, 2018 by Julien Demangeon

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

April 03, 2018 by Kévin Maschtaler

Functional Programming in JavaScript, Part 1: The Unit

March 14, 2018 by Thiery Michel

School Of PO, retour sur la conférence

February 15, 2018 by Florian Ferbach

Admin-on-rest 1.4: Winter Changes

February 14, 2018 by Gildas Garcia

Le jeu du Taquin en React et React Native

February 07, 2018 by Adrien Amoros

BlendWebMix 2017

January 15, 2018 by Gildas Garcia

Réussir une rétrospective agile

January 11, 2018 by Yann Gensollen

Le jeu du Taquin en php (framework Symfony)

January 08, 2018 by Adrien Amoros

2017

Let's cook some Crystal!

December 14, 2017 by Julien Demangeon

Minutes of DotJS 2017

December 11, 2017 by Gildas Garcia & Adrien Amoros

How To Implement Material Design Motion with React.js

December 04, 2017 by Florian Ferbach

Le jeu du Taquin en go

December 01, 2017 by Adrien Amoros

Learning Jest Through Practice

November 08, 2017 by Jonathan Petitcolas

Le jeu du Taquin en python

October 25, 2017 by Adrien Amoros

Marmelab souhaite la bienvenue à Adrien

October 24, 2017 by François Zaninotto

New Website Design

September 22, 2017 by François Zaninotto

Admin-on-rest 1.3: Summer Changes

September 14, 2017 by François Zaninotto

Real-Time Resource Locking Using Websockets and Navigation

September 13, 2017 by Julien Demangeon

Dive Into GraphQL

September 03, 2017 by François Zaninotto

Introducing Json GraphQL Server

July 12, 2017 by François Zaninotto

Admin-on-rest 1.1 and 1.2: Focus On The New Features

June 29, 2017 by François Zaninotto

Admin-on-rest now supports GraphQL backends

June 01, 2017 by Gildas Garcia

Admin-on-rest 1.0 Stable is out

April 26, 2017 by François Zaninotto

Le jeu Awalé en React Native

April 03, 2017 by Maxime Richard

Découvrir les service workers

March 21, 2017 by Alexis Janvier

Développement d'un bot Awale pour Slack

March 15, 2017 by Maxime Richard

admin-on-rest 0.9 is out

March 10, 2017 by François Zaninotto

admin-on-rest: Meet the demo

February 22, 2017 by François Zaninotto

admin-on-rest 0.8 is out

February 14, 2017 by François Zaninotto

Vous avez dit Awalé ?

February 10, 2017 by Maxime Richard

Marmelab souhaite la bienvenue à Maxime

February 09, 2017 by François Zaninotto

React is Slow, React is Fast: Optimizing React Apps in Practice

February 06, 2017 by François Zaninotto

Comment l'Etat se modernise grâce au Lean Startup

February 03, 2017 by Yann Gensollen

ng-admin 1.0 is out!

January 27, 2017 by Jonathan Petitcolas

admin-on-rest 0.7 is out

January 13, 2017 by François Zaninotto

2016

Minutes of DotJS 2016

December 22, 2016 by Gildas Garcia & Kévin Maschtaler

React Isomorphique en pratique

December 21, 2016 by Julien Demangeon

Npm Tips and Tricks

December 07, 2016 by Jonathan Petitcolas

Othello mobile en React Native

November 30, 2016 by Julien Demangeon

Reversi bot: Go et Symfony en action

November 24, 2016 by Julien Demangeon

admin-on-rest 0.5 is out

November 10, 2016 by François Zaninotto

Marmelab souhaite la bienvenue à Julien

November 04, 2016 by François Zaninotto

Using Saga To Accumulate And Deduplicate Redux Actions

October 18, 2016 by François Zaninotto

Jeu mobile en React Native : retour d'expérience

September 26, 2016 by Florian Ferbach

Marmelab souhaite la bienvenue à Florian

September 07, 2016 by François Zaninotto

Introducing admin-on-rest, the React Admin GUI for REST APIs

September 02, 2016 by François Zaninotto

Minutes of AWS Summit Paris 2016

EventDrops 0.2 is out!

March 09, 2016 by Jonathan Petitcolas

Self-Documented Makefile

February 29, 2016 by François Zaninotto

Lean Startup, day 11: The Demo

February 16, 2016 by François Zaninotto

Marmelab souhaite la bienvenue à Kevin

January 28, 2016 by François Zaninotto

Lean Startup Adventure, day 2: The Idea

January 15, 2016 by François Zaninotto

A Lean Startup Adventure

January 13, 2016 by Yann Gensollen

2015

Lean Kanban France 2015

November 09, 2015 by Yann Gensollen

ng-admin: Meet the new demo

September 04, 2015 by François Zaninotto

ng-admin 0.8 Is Out!

August 26, 2015 by François Zaninotto

Minutes of PHP Tour 2015

June 01, 2015 by Emmanuel Quentin

Mon premier défi : un Dobble generator en TDD

April 07, 2015 by Gildas Garcia

Using Ng-admin with postgREST

March 23, 2015 by Brice Bernard

Marmelab souhaite la bienvenue à Yann

March 03, 2015 by François Zaninotto

Ng-admin 0.6: Adding Support for Custom Types

February 25, 2015 by François Zaninotto

Playing with websockets in Go

January 29, 2015 by Jonathan Petitcolas

2014

Marmelab: 2 years of Open-Source

December 17, 2014 by François Zaninotto

ng-admin 0.4: Eating our own dog food

December 05, 2014 by François Zaninotto

Creating JSON Web Token in JavaScript

December 02, 2014 by Jonathan Petitcolas

Big changes in ng-admin 0.3: Introducing views

November 13, 2014 by Emmanuel Quentin

We're retiring gaudi

November 06, 2014 by François Zaninotto

Marmelab déménage!

October 29, 2014 by François Zaninotto

Une console plus graphique avec node.js et d3.js

October 03, 2014 by Alexis Janvier

[Video] MobileInsight : une semaine avec Angular.js, Ionic et PhoneGap

September 26, 2014 by Alexis Janvier

Marmelab souhaite la bienvenue à Alexis

September 16, 2014 by François Zaninotto

ng-admin: Add an AngularJS admin GUI to any RESTful API

September 15, 2014 by Daphné Popin

Fibonacci sequence generator in Go

September 08, 2014 by Jonathan Petitcolas

One New Tech Per Project

September 01, 2014 by François Zaninotto

Running Symfony CMF With Gaudi

February 09, 2014 by Emmanuel Quentin

2013

My First Assignment: a PHPCR Browser

December 16, 2013 by Robin Bressan

Marmelab souhaite la bienvenue à Robin

December 04, 2013 by François Zaninotto

Marmelab souhaite la bienvenue à Daphné

November 05, 2013 by François Zaninotto

Marmelab souhaite la bienvenue à Jérôme

September 16, 2013 by François Zaninotto

Pour la fin des contrats au forfait

February 11, 2013 by François Zaninotto