MAJORDOM
L'excellence à votre porte
Demander un devis
 

Ménage à domicile

-50% crédit d'impôt immédiat
Tarifs dégressifs et accessibles
Même intervenant sans changement
Nos propres salariés fidélisés, mieux rémunérés
Agence locale & application connectée
Agence locale à Metz
 

Agence locale à Metz

-50% crédit d'impôt immédiat
Tarifs dégressifs et accessibles
Même intervenant sans changement
Nos propres salariés fidélisés, mieux rémunérés
Repas, courses, chauffeur et intendance courante
Enfants, animaux, présence et accompagnement
Maison, intervenants et services associés

Nos services sur mesure

Ménage à domicile Metz
Particuliers

Ménage à domicile

À partir de 14,25€ TTC / heure
Éligible CESU et AVANCE IMMÉDIATE

Découvrir

Services de Majordome prestige
Particuliers premium & Seniors

Services de Majordome

Tel un Majordome d'antan, le service de majordome réunit, coordonne et simplifie tous les besoins de la maison.

Découvrir

Conciergerie et turnover Metz
Pros & Gestionnaire immobilier

Conciergerie & Turnover

Fourniture de linge qualité hôtel, ménage check-out, consommables ...

Découvrir

Ils nous confient leur quotidien à Metz

5 / 5
★★★★★
Google Avis Google
Basé sur des avis Google vérifiés

Excellente expérience à Metz. Équipe réactive, sérieuse et suivi très professionnel.

Julien • client à Metz
Google Google · il y a 5 semaines

À Queuleu, nous apprécions surtout la régularité et la qualité du service.

Nathalie • cliente à Queuleu
Google Google · il y a 6 semaines

Très bon service à Montigny-lès-Metz. Équipe stable, ponctuelle et vraie qualité dans le temps.

Marc • client à Montigny-lès-Metz
Google Google · il y a 7 semaines

Votre agence Majordom Metz

Adresse de l’agence :

28 rue Pasteur
57000 Metz

 

Horaires d’ouverture :

Du lundi au vendredi : 9h – 19h

 

Contact :

03 72 91 69 83

contact@majordom-serv.fr

 

Informations légales :
SIRET : 94124394100015
Déclaration Services à la Personne Préfecture de Moselle : SAP 941243941

Nous écrire

Dans quels quartiers Majordom intervient-il à Metz ?

Majordom intervient dans tous les quartiers de Metz ainsi que dans l’ensemble de l’Eurométropole, avec le même niveau d’exigence, de discrétion et de régularité.

Metz

Tous les quartiers de la ville

Que vous habitiez dans le centre-ville, à Nouvelle Ville, Queuleu, Sablon, Devant-les-Ponts, Plantières, Magny, Vallières, Bellecroix ou dans un quartier résidentiel, Majordom peut organiser une prestation adaptée à votre rythme et à votre domicile.

Notre organisation nous permet d’intervenir dans l’ensemble de Metz, avec la même exigence de suivi, la même discrétion et le même niveau de finition.

Metz

Une couverture locale bien encadrée

Grâce à une agence structurée et à des équipes fidélisées, nous pouvons proposer un service stable, régulier et réellement suivi dans la durée.

Vous bénéficiez ainsi d’un interlocuteur clair, d’une organisation simple et d’une qualité constante, que votre besoin soit ponctuel ou récurrent.

Intérieur soigné entretenu par Majordom à Metz
Autour de Metz

Toute l’Eurométropole

Montigny-lès-Metz, Marly, Woippy, Le Ban-Saint-Martin, Longeville-lès-Metz, Moulins-lès-Metz, Scy-Chazelles, Ars-sur-Moselle, Augny, Fèves, Saint-Julien-lès-Metz et communes voisines.

Questions fréquentes

Puis-je avoir la même aide-ménagère à Metz ?

Oui, c’est l’objectif : proposer un service stable, rassurant et régulier.

Faites-vous aussi le repassage à Metz ?

Oui, il peut être intégré à la prestation selon vos besoins.

Comment demander un devis de ménage à Metz ?

Via le formulaire de contact ou directement par téléphone auprès de l’agence.

document.addEventListener("DOMContentLoaded", function () { const hero = document.getElementById("majordomHeroSplit"); if (!hero) return; const cards = Array.from(hero.querySelectorAll("[data-card]")); const leftCard = hero.querySelector(".split-left"); const rightCard = hero.querySelector(".split-right"); const videos = Array.from(hero.querySelectorAll(".split-video")); const intervals = new Map(); const timeouts = new Map(); const isMobile = () => window.matchMedia("(max-width: 991px)").matches; const isDesktop = () => window.matchMedia("(hover:hover) and (pointer:fine)").matches; function getVideo(card) { return card ? card.querySelector(".split-video") : null; } function safePlay(video) { if (!video) return; video.muted = true; video.defaultMuted = true; video.playsInline = true; video.setAttribute("muted", ""); video.setAttribute("playsinline", ""); const p = video.play(); if (p && typeof p.catch === "function") p.catch(() => {}); } function safePause(video) { if (!video) return; try { video.pause(); } catch (e) {} } function preloadVideos() { videos.forEach((video) => { try { video.load(); } catch (e) {} }); } function clearTimers(card) { if (timeouts.has(card)) { timeouts.get(card).forEach((id) => clearTimeout(id)); timeouts.delete(card); } if (intervals.has(card)) { clearInterval(intervals.get(card)); intervals.delete(card); } } function resetRotator(card) { const title = card.querySelector(".split-main-title"); const args = Array.from(card.querySelectorAll(".split-arg")); clearTimers(card); if (title) title.classList.remove("is-hidden"); args.forEach((arg) => arg.classList.remove("is-visible")); } function startRotator(card) { const title = card.querySelector(".split-main-title"); const args = Array.from(card.querySelectorAll(".split-arg")); if (!title || !args.length) return; resetRotator(card); let current = 0; const localTimeouts = []; const hideTitleTimer = setTimeout(() => { if (!card.classList.contains("is-active")) return; title.classList.add("is-hidden"); }, 1800); const showArgsTimer = setTimeout(() => { if (!card.classList.contains("is-active")) return; args[0].classList.add("is-visible"); const loop = setInterval(() => { if (!card.classList.contains("is-active")) return; args[current].classList.remove("is-visible"); current = (current + 1) % args.length; args[current].classList.add("is-visible"); }, 2100); intervals.set(card, loop); }, 2450); localTimeouts.push(hideTitleTimer, showArgsTimer); timeouts.set(card, localTimeouts); } function stopRotator(card) { resetRotator(card); } function setActive(card) { cards.forEach((item) => { const active = item === card; item.classList.toggle("is-active", active); if (active) { startRotator(item); } else { stopRotator(item); } }); hero.classList.add("has-focus"); } function clearActive() { cards.forEach((item) => { item.classList.remove("is-active"); stopRotator(item); }); hero.classList.remove("has-focus"); } function playOnlyCard(card) { cards.forEach((item) => { const video = getVideo(item); if (item === card) { safePlay(video); } else { safePause(video); } }); } preloadVideos(); /* Desktop hover */ cards.forEach((card) => { card.addEventListener("mouseenter", function () { if (!isDesktop()) return; setActive(card); playOnlyCard(card); }); card.addEventListener("mouseleave", function () { if (!isDesktop()) return; const stillHover = cards.some(c => c.matches(":hover")); if (!stillHover) { clearActive(); videos.forEach((v) => safePause(v)); } }); }); /* Mobile initial: seule la gauche joue */ function activateLeftInitially() { if (!isMobile()) return; setActive(leftCard); playOnlyCard(leftCard); } /* Mobile: la 2e s'active seulement au scroll */ function updateMobileCardByScroll() { if (!isMobile()) return; const leftRect = leftCard.getBoundingClientRect(); const rightRect = rightCard.getBoundingClientRect(); const triggerY = window.innerHeight * 0.58; const leftCenter = leftRect.top + leftRect.height / 2; const rightCenter = rightRect.top + rightRect.height / 2; const leftDistance = Math.abs(leftCenter - triggerY); const rightDistance = Math.abs(rightCenter - triggerY); if (rightDistance + 8 < leftDistance) { setActive(rightCard); playOnlyCard(rightCard); } else { setActive(leftCard); playOnlyCard(leftCard); } } window.addEventListener("scroll", function () { if (isMobile()) updateMobileCardByScroll(); }, { passive: true }); cards.forEach((card) => { card.addEventListener("touchstart", function () { if (!isMobile()) return; setActive(card); playOnlyCard(card); }, { passive: true }); }); document.addEventListener("visibilitychange", function () { if (!document.hidden && isMobile()) { updateMobileCardByScroll(); } }); window.addEventListener("resize", function () { if (isMobile()) { updateMobileCardByScroll(); } else { clearActive(); videos.forEach((v) => safePause(v)); } }); if (isMobile()) { activateLeftInitially(); setTimeout(updateMobileCardByScroll, 120); } });