Chaque matin, PhémeApp surveille les publications officielles du canton de Vaud et vous alerte dès qu'un dossier est déposé dans votre périmètre.
Trois étapes — vous faites la première, PhémeApp fait les deux suivantes chaque matin.
Saisissez l'adresse à surveiller — domicile, propriété, bureau. Nous géocodons automatiquement les coordonnées GPS.
À 8h, notre système interroge le registre officiel cantonal. Chaque nouvelle publication est comparée à vos adresses.
Si un dossier est dans votre périmètre, vous recevez un email complet avec le lien vers le dossier officiel de la commune.
Passé ce délai, toute opposition est irrecevable. Sans surveillance active, vous ne saurez souvent qu'il est trop tard.
Gabarit, hauteur, accès, stationnement, nuisances. Autant de points sur lesquels vous pouvez vous exprimer si vous êtes informé à temps.
Accès modifié, nuisances sonores, trottoirs. Les travaux publics sont aussi soumis à enquête publique.
Abattage d'arbres, clôtures, aménagements paysagers. Rien ne passe sous le radar si la surveillance est active.
L'intérêt direct est interprété largement en droit vaudois. Vous avez probablement qualité pour agir — encore faut-il être informé.
Une alerte claire avec tous les détails utiles et le lien direct vers le dossier officiel.
Bonjour Arnaud,
Une mise à l'enquête a été publiée à 270 mètres de votre adresse Maison — Préverenges.
| No CAMAC | 249 553 |
| Lieu | Chemin du Grebe 8, Préverenges |
| Nature | Construction d'une villa individuelle |
| Distance | 270 m de votre adresse |
PhémeApp — service d'information automatisé, canton de Vaud. Se désinscrire · Mon espace
Commencez sans engagement. Passez à Pro pour plusieurs adresses.
Aucune carte bancaire requise. Actif dès le lendemain matin.
En vous inscrivant, vous acceptez nos CGU et notre politique de confidentialité. Désabonnement en un clic à tout moment.
const email = document.getElementById('f-email')?.value.trim() || ''; const adresse = document.getElementById('f-adresse')?.value.trim() || ''; const label = document.getElementById('f-label')?.value.trim() || 'Adresse principale'; const btn = document.getElementById('f-submit'); if (!email || !adresse) { showMsg('Veuillez remplir au minimum votre email et l\'adresse à surveiller.', '#dc2626'); return; } const emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRe.test(email)) { showMsg('Adresse email invalide.', '#dc2626'); return; } btn.disabled = true; btn.textContent = '⏳ Inscription en cours…'; showMsg('Envoi en cours…', '#9ca3af'); try { const resp = await fetch(WEBAPP_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ action: 'subscribe', nom: (prenom + ' ' + nom).trim(), email: email, adresse1: adresse, label1: label, }) }); const data = await resp.json(); if (data.success) { showConfirmation(adresse, email); } else if (data.already_exists) { showMsg('✅ Cette adresse email est déjà inscrite. Consultez votre email de bienvenue.', '#1a7a4a'); btn.disabled = false; btn.textContent = 'Activer ma surveillance →'; } else { throw new Error(data.error || 'Erreur inconnue'); } } catch(err) { console.warn('Apps Script indisponible, fallback Google Form:', err); window.open('https://docs.google.com/forms/d/e/1FAIpQLSdmPA95DdBpJaUtvfHDA0Y_SL4Nr0ZmFCzPv-ySSW3d9Oq3kQ/viewform', '_blank'); showMsg('Remplissez le formulaire qui vient de s\'ouvrir pour finaliser votre inscription.', '#9ca3af'); btn.disabled = false; btn.textContent = 'Activer ma surveillance →'; } } function showConfirmation(adresse, email) { document.getElementById('form-fields').style.display = 'none'; document.getElementById('form-success').style.display = 'block'; const prenom = document.getElementById('f-prenom')?.value.trim() || ''; const greeting = prenom ? 'Merci ' + prenom + ' !' : 'Merci !'; document.getElementById('success-msg').innerHTML = '' + greeting + ' Dès demain matin à 8h, nous vous notifierons si une mise à l\'enquête est annoncée autour de ' + adresse + '.'; } function showMsg(text, color) { const el = document.getElementById('form-msg'); el.textContent = text; el.style.color = color; }