Après le v1 shippé en une journée, j’ai passé Moon en mode « outil que j’utilise vraiment » : polish UI, flux plus sûr, export MP4, et publication open source sur GitHub.

Moon reste un enregistreur d’écran macOS local-first — pas de cloud, pas de SaaS. Tu installes l’app, tu enregistres, tu récupères un fichier dans Téléchargements. C’est mon alternative perso à Loom, avec une bulle webcam que je contrôle entièrement.

Ce qui a changé depuis le v1

Dynamic Island repensée : pause, bouton vert ✓ pour valider et sauvegarder, bouton rouge ✕ pour supprimer (avec confirmation), et un toggle flou d’arrière-plan sur la webcam.

Bulle webcam visible dès le compte à rebours (3, 2, 1), pas seulement pendant l’enregistrement — tu te positionnes avant que ça tourne. La bulle est déplaçable à la souris pendant la session.

Segmentation MediaPipe (selfie segmenter) : personne nette, fond flou réglable, sans contour blanc autour de la tête. Animations discrètes sur le countdown, l’îlot et la bulle.

Export MP4 automatique dans Téléchargements (ffmpeg-static), icône Moon dans la barre de menu, et le clic sur l’icône ouvre le menu sans lancer l’enregistrement directement — il faut choisir « Enregistrer ».

Stack technique

Electron 34 + React 19 + TypeScript, electron-vite, MediaPipe tasks-vision pour le flou, MediaRecorder + canvas pour la capture écran, ffmpeg-static pour la conversion WebM → MP4.

Architecture multi-fenêtres : process main (tray, overlays, IPC, protocole moon:// pour charger MediaPipe en prod), preload bridge, renderer React pour countdown, Dynamic Island, bulle webcam et moteur d’enregistrement caché.

Packaging DMG arm64 (~140 Mo). Permissions macOS caméra / micro / enregistrement d’écran obligatoires.

Open source

Le code est public sur GitHub : https://github.com/alkhastvatsaev/moon — MIT, contributions bienvenues. Clone, npm install, npm run dev pour lancer en local, npm run package:app pour builder le .app.

Ce n’est toujours pas un produit App Store ni un service hébergé : c’est un outil perso que je partage parce que le problème (enregistrer son écran + sa tête, localement, sans abonnement) est universel.

Prochaines étapes

Raccourci clavier global, historique des captures, réglages de qualité, peut-être un mode fenêtre. Si tu testes Moon ou tu recrutes un Full Stack junior qui shippe aussi du desktop (Electron, permissions native, packaging), le portfolio et le contact sont ici : https://alkhastvatsaev.dev — alkhastvatsaev@icloud.com