NotifySync transforme l'interface de Jellyfin en ajoutant une icône de notification (cloche) native. Il permet à vos utilisateurs de voir instantanément les derniers ajouts (Films, Séries, Musique) sans quitter leur page actuelle, le tout avec un design fluide inspiré des plateformes de streaming majeures.
C#
25
15 commits
updated Sep 28, 2026
The modern notification center Jellyfin has been waiting for.
Le centre de notifications moderne que Jellyfin attendait.
🌐 Language / Langue
English | Français
NotifySync transforms the Jellyfin interface by adding a native notification bell, inspired by major streaming platforms. Your users see the latest additions — Movies, Series, Music — without ever leaving their current page, through a sleek glass-morphism dropdown that feels like it was always part of Jellyfin.
📖 Changelog & version history: see GitHub Releases for what's new in each version.
That's it. The bell appears in the top-right header with your latest additions, and keeps up as new content arrives.
Season 4 • Ep. 1-12, or Ep. 1, 8 for a partial batch); tracks grouped by album.[!IMPORTANT] Prerequisites:
- Jellyfin 10.11.x or 12.x
- A web client — browser on desktop, tablet or phone, or the mobile app. TV apps render natively and cannot display the bell.
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/jellyfin-12/repository-12.json
Automatic injection, no file to edit, and it survives Jellyfin updates.
https://www.iamparadox.dev/jellyfin/plugins/manifest.json
Ctrl+F5 in your browser.[!WARNING] This method requires re-applying the patch after every Jellyfin update, because Jellyfin overwrites
index.html. Method 1 is strongly preferred.
If you prefer not to install another plugin, manually add the script tag to your index.html:
Linux
sudo sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /usr/share/jellyfin/web/index.html
Docker
docker exec jellyfin sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /jellyfin/jellyfin-web/index.html
Windows — open the web client's index.html in a text editor started as administrator:
C:\Program Files\Jellyfin\Server\jellyfin-web\index.html
and paste this line just before the closing </body>:
<script src="/NotifySync/client.js"></script>
Go to Dashboard > Plugins > NotifySync.
| Setting | Default | Description |
|---|---|---|
| Quotas | 10 | Maximum number of entries per category (1–50). A whole series counts as one entry regardless of episode count (up to 500 episodes stored per series). |
| Monitored Libraries | (none) | Check the folders you want to appear in notifications. |
| Monitored Collections | (none) | Select Jellyfin collections (BoxSets) to track for new additions. Scanned every 15 minutes. |
| Category Mapping | (empty) | Rename or group your libraries in the bell (e.g. "My Movies" → "Movies"). A library without a mapping shows under its own name. The arrows set the order of the bell's filters. |
| Manual Library IDs | (empty) | Add library IDs or names manually for advanced setups (Channels, XFusion). |
| Deleted Items Tracking | enabled | Enable/disable the deletion history log. Required for full UPD detection on Sonarr/Radarr replacements (delete+re-import scenario). Replacements are correlated within a 7-day window. |
| Deletion Retention | 30 days | Number of days to keep deleted item records (7–365). The lower bound is 7 days so the detection window always has data — retention only controls how long the deletions stay visible in the admin log. |
| Regenerate History | — | Force a full rescan after changing libraries or categories. |
| Scan Collections Now | — | Force an immediate scan of monitored Collections instead of waiting for the automatic interval. |
| Issue | Solution |
|---|---|
| Bell doesn't appear | Check File Transformation is installed. Restart Jellyfin. Clear browser cache (Ctrl+Shift+R). |
| Bell appeared then disappeared after Jellyfin update | You're using Method 2 (manual injection) — re-apply the sed command. Switch to Method 1 (File Transformation) to avoid this. |
| Badge count is wrong | Click "Regenerate history" in config. Clear browser localStorage. |
| Music not synced | Use "Regenerate history" to rescan audio tracks. |
| Content missing | Ensure the library is checked in "Monitored Libraries". |
| New TV episode missing | Make sure the Series-type library containing the episode is checked in "Monitored Libraries". |
| Replaced file shows NEW instead of UPD | Enable Deleted Items Tracking in config — required for the delete+re-import detection path. |
| A renamed file shows a false UPD badge | Renaming alone is recognised and stays silent. A badge can still slip through if the rename changed the file itself — dismiss it, and it will not come back. |
| A moved series still shows as NEW | Move detection needs Deleted Items Tracking enabled, and it only recognises a folder that kept its name — moving and renaming in one go is indistinguishable from a deletion followed by an addition. |
| Unauthorized content visible | Plugin respects Jellyfin permissions — check user restrictions in the dashboard. |
| 429 Error | Wait 30 seconds between "Regenerate history" clicks (anti-spam). |
| Incompatible | Use the repository that matches your Jellyfin version, 10.11.x or 12.x — see Installation. |
NotifySync integrates beautifully with the ElegantFin Cinema Edition theme — a streaming-inspired CSS theme for Jellyfin with a full suite of cinematic modules.
Both projects work flawlessly together on PC (browser) and mobile (Jellyfin app + browser).
⭐ Install once, get a complete cinematic Jellyfin experience with real-time notifications.
⚠️ TV note: NotifySync currently doesn't render on TV apps (Samsung Tizen, Android TV, LG webOS). The notification bell is a web client feature and TV apps use native rendering.
NotifySync is maintained by:
Thanks to @muisje and @Wernouxe for their feature requests and bug reports that shaped this plugin.
Contributions, bug reports, and feature requests are welcome on GitHub.
Released under the MIT License.
NotifySync transforme l'interface Jellyfin en y ajoutant une cloche de notifications native, inspirée des grandes plateformes de streaming. Vos utilisateurs voient les derniers ajouts — Films, Séries, Musique — sans jamais quitter leur page, via un menu déroulant en verre dépoli qui s'intègre naturellement dans Jellyfin.
📖 Changelog & historique des versions : voir les Releases GitHub pour les nouveautés de chaque version.
C'est tout. La cloche apparaît en haut à droite de l'interface avec vos derniers ajouts, et suit les nouveautés au fil de l'eau.
Saison 4 • Ép. 1-12, ou Ép. 1, 8 pour un lot partiel) ; pistes groupées par album.[!IMPORTANT] Pré-requis :
- Jellyfin 10.11.x ou 12.x
- Un client web — navigateur sur ordinateur, tablette ou téléphone, ou l'application mobile. Les applications TV ont un rendu natif et ne peuvent pas afficher la cloche.
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/jellyfin-12/repository-12.json
Injection automatique, aucun fichier à modifier, et ça survit aux mises à jour de Jellyfin.
https://www.iamparadox.dev/jellyfin/plugins/manifest.json
Ctrl+F5 dans votre navigateur.[!WARNING] Cette méthode nécessite de ré-appliquer le patch après chaque mise à jour Jellyfin, car Jellyfin écrase
index.html. La Méthode 1 est fortement recommandée.
Si vous préférez ne pas installer d'extension tierce :
Linux
sudo sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /usr/share/jellyfin/web/index.html
Docker
docker exec jellyfin sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /jellyfin/jellyfin-web/index.html
Windows — ouvrez le index.html du client web dans un éditeur lancé en administrateur :
C:\Program Files\Jellyfin\Server\jellyfin-web\index.html
et collez cette ligne juste avant la balise </body> :
<script src="/NotifySync/client.js"></script>
Allez dans Tableau de bord > Extensions > NotifySync.
| Paramètre | Défaut | Description |
|---|---|---|
| Quotas | 10 | Nombre maximum d'entrées par catégorie (1–50). Une série entière compte pour une seule entrée, quel que soit le nombre d'épisodes (jusqu'à 500 épisodes stockés par série). |
| Bibliothèques Surveillées | (aucune) | Cochez les dossiers que vous souhaitez voir apparaître dans la cloche. |
| Collections Surveillées | (aucune) | Sélectionnez les collections Jellyfin (BoxSets) à surveiller pour les nouveaux ajouts. Scannées toutes les 15 minutes. |
| Mappage des Catégories | (vide) | Renommez ou regroupez vos bibliothèques dans la cloche (ex. "Mes Films" → "Films"). Une bibliothèque sans mappage garde son propre nom. Les flèches fixent l'ordre des filtres de la cloche. |
| IDs Manuels | (vide) | Ajoutez des IDs ou noms de bibliothèques manuellement pour les configurations avancées (Channels, XFusion). |
| Suivi des Suppressions | activé | Activer/désactiver le journal des suppressions. Requis pour la détection MAJ complète sur les remplacements Sonarr/Radarr (scénario delete+ré-import). Les remplacements sont corrélés dans une fenêtre de 7 jours. |
| Rétention des Suppressions | 30 jours | Nombre de jours de conservation des éléments supprimés (7–365). La borne basse est de 7 jours pour que la fenêtre de détection ait toujours des données — la rétention ne fait que prolonger l'affichage dans le journal admin. |
| Régénérer l'Historique | — | Force un scan complet après modification des bibliothèques ou des catégories. |
| Scanner les Collections | — | Force un scan immédiat des Collections surveillées au lieu d'attendre l'intervalle automatique. |
| Problème | Solution |
|---|---|
| La cloche n'apparaît pas | Vérifiez que File Transformation est installé. Redémarrez Jellyfin. Videz le cache (Ctrl+Shift+R). |
| La cloche a disparu après mise à jour Jellyfin | Vous utilisez la Méthode 2 (injection manuelle) — ré-appliquez la commande sed. Passez à la Méthode 1 (File Transformation) pour éviter ça. |
| Le badge est incorrect | Cliquez sur "Régénérer l'historique". Videz le localStorage du navigateur. |
| Musique non synchronisée | Utilisez "Régénérer l'historique" pour rescanner les pistes audio. |
| Contenu manquant | Vérifiez que la bibliothèque est cochée dans "Bibliothèques Surveillées". |
| Nouvel épisode TV manquant | Vérifiez que la bibliothèque de type Série contenant l'épisode est cochée dans "Bibliothèques Surveillées". |
| Fichier remplacé apparaît en NOUVEAU au lieu de MAJ | Activez le Suivi des Suppressions dans la config — nécessaire pour la détection du scénario delete+ré-import. |
| Un fichier renommé affiche un faux badge MAJ | Un simple renommage est reconnu et reste silencieux. Un badge ne peut subsister que si le renommage a aussi modifié le fichier — retirez la notification, elle ne reviendra pas. |
| Une série déplacée apparaît quand même en NOUVEAU | La détection nécessite le Suivi des Suppressions activé, et elle ne reconnaît qu'un dossier ayant conservé son nom — déplacer et renommer en une fois est indistinguable d'une suppression suivie d'un ajout. |
| Contenu non autorisé visible | Le plugin respecte les permissions Jellyfin — vérifiez les restrictions utilisateur. |
| Erreur 429 | Attendez 30 secondes entre chaque clic sur "Régénérer l'historique" (anti-spam). |
| Incompatible | Utilisez le dépôt qui correspond à votre version de Jellyfin, 10.11.x ou 12.x — voir Installation. |
NotifySync s'intègre parfaitement avec le thème ElegantFin Cinema Edition — un thème CSS inspiré des plateformes de streaming pour Jellyfin avec une suite complète de modules cinématographiques.
Les deux projets fonctionnent ensemble sur PC (navigateur) et mobile (app Jellyfin + navigateur).
⭐ Installation unique, expérience Jellyfin cinéma complète avec notifications temps réel.
⚠️ Note TV : NotifySync ne s'affiche actuellement pas sur les apps TV (Samsung Tizen, Android TV, LG webOS). La cloche est une fonctionnalité du client web et les apps TV utilisent un rendu natif.
NotifySync est maintenu par :
Merci à @muisje et @Wernouxe pour leurs demandes de fonctionnalités et rapports de bugs qui ont façonné ce plugin.
Contributions, rapports de bugs et demandes de fonctionnalités sont les bienvenus sur GitHub.
Distribué sous Licence MIT.
C#
60.7%
HTML
22.2%
JavaScript
17.1%
NotifySync transforme l'interface de Jellyfin en ajoutant une icône de notification (cloche) native. Il permet à vos utilisateurs de voir instantanément les derniers ajouts (Films, Séries, Musique) sans quitter leur page actuelle, le tout avec un design fluide inspiré des plateformes de streaming majeures.
C#
25
15 commits
updated Sep 28, 2026
The modern notification center Jellyfin has been waiting for.
Le centre de notifications moderne que Jellyfin attendait.
🌐 Language / Langue
English | Français
NotifySync transforms the Jellyfin interface by adding a native notification bell, inspired by major streaming platforms. Your users see the latest additions — Movies, Series, Music — without ever leaving their current page, through a sleek glass-morphism dropdown that feels like it was always part of Jellyfin.
📖 Changelog & version history: see GitHub Releases for what's new in each version.
That's it. The bell appears in the top-right header with your latest additions, and keeps up as new content arrives.
Season 4 • Ep. 1-12, or Ep. 1, 8 for a partial batch); tracks grouped by album.[!IMPORTANT] Prerequisites:
- Jellyfin 10.11.x or 12.x
- A web client — browser on desktop, tablet or phone, or the mobile app. TV apps render natively and cannot display the bell.
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/jellyfin-12/repository-12.json
Automatic injection, no file to edit, and it survives Jellyfin updates.
https://www.iamparadox.dev/jellyfin/plugins/manifest.json
Ctrl+F5 in your browser.[!WARNING] This method requires re-applying the patch after every Jellyfin update, because Jellyfin overwrites
index.html. Method 1 is strongly preferred.
If you prefer not to install another plugin, manually add the script tag to your index.html:
Linux
sudo sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /usr/share/jellyfin/web/index.html
Docker
docker exec jellyfin sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /jellyfin/jellyfin-web/index.html
Windows — open the web client's index.html in a text editor started as administrator:
C:\Program Files\Jellyfin\Server\jellyfin-web\index.html
and paste this line just before the closing </body>:
<script src="/NotifySync/client.js"></script>
Go to Dashboard > Plugins > NotifySync.
| Setting | Default | Description |
|---|---|---|
| Quotas | 10 | Maximum number of entries per category (1–50). A whole series counts as one entry regardless of episode count (up to 500 episodes stored per series). |
| Monitored Libraries | (none) | Check the folders you want to appear in notifications. |
| Monitored Collections | (none) | Select Jellyfin collections (BoxSets) to track for new additions. Scanned every 15 minutes. |
| Category Mapping | (empty) | Rename or group your libraries in the bell (e.g. "My Movies" → "Movies"). A library without a mapping shows under its own name. The arrows set the order of the bell's filters. |
| Manual Library IDs | (empty) | Add library IDs or names manually for advanced setups (Channels, XFusion). |
| Deleted Items Tracking | enabled | Enable/disable the deletion history log. Required for full UPD detection on Sonarr/Radarr replacements (delete+re-import scenario). Replacements are correlated within a 7-day window. |
| Deletion Retention | 30 days | Number of days to keep deleted item records (7–365). The lower bound is 7 days so the detection window always has data — retention only controls how long the deletions stay visible in the admin log. |
| Regenerate History | — | Force a full rescan after changing libraries or categories. |
| Scan Collections Now | — | Force an immediate scan of monitored Collections instead of waiting for the automatic interval. |
| Issue | Solution |
|---|---|
| Bell doesn't appear | Check File Transformation is installed. Restart Jellyfin. Clear browser cache (Ctrl+Shift+R). |
| Bell appeared then disappeared after Jellyfin update | You're using Method 2 (manual injection) — re-apply the sed command. Switch to Method 1 (File Transformation) to avoid this. |
| Badge count is wrong | Click "Regenerate history" in config. Clear browser localStorage. |
| Music not synced | Use "Regenerate history" to rescan audio tracks. |
| Content missing | Ensure the library is checked in "Monitored Libraries". |
| New TV episode missing | Make sure the Series-type library containing the episode is checked in "Monitored Libraries". |
| Replaced file shows NEW instead of UPD | Enable Deleted Items Tracking in config — required for the delete+re-import detection path. |
| A renamed file shows a false UPD badge | Renaming alone is recognised and stays silent. A badge can still slip through if the rename changed the file itself — dismiss it, and it will not come back. |
| A moved series still shows as NEW | Move detection needs Deleted Items Tracking enabled, and it only recognises a folder that kept its name — moving and renaming in one go is indistinguishable from a deletion followed by an addition. |
| Unauthorized content visible | Plugin respects Jellyfin permissions — check user restrictions in the dashboard. |
| 429 Error | Wait 30 seconds between "Regenerate history" clicks (anti-spam). |
| Incompatible | Use the repository that matches your Jellyfin version, 10.11.x or 12.x — see Installation. |
NotifySync integrates beautifully with the ElegantFin Cinema Edition theme — a streaming-inspired CSS theme for Jellyfin with a full suite of cinematic modules.
Both projects work flawlessly together on PC (browser) and mobile (Jellyfin app + browser).
⭐ Install once, get a complete cinematic Jellyfin experience with real-time notifications.
⚠️ TV note: NotifySync currently doesn't render on TV apps (Samsung Tizen, Android TV, LG webOS). The notification bell is a web client feature and TV apps use native rendering.
NotifySync is maintained by:
Thanks to @muisje and @Wernouxe for their feature requests and bug reports that shaped this plugin.
Contributions, bug reports, and feature requests are welcome on GitHub.
Released under the MIT License.
NotifySync transforme l'interface Jellyfin en y ajoutant une cloche de notifications native, inspirée des grandes plateformes de streaming. Vos utilisateurs voient les derniers ajouts — Films, Séries, Musique — sans jamais quitter leur page, via un menu déroulant en verre dépoli qui s'intègre naturellement dans Jellyfin.
📖 Changelog & historique des versions : voir les Releases GitHub pour les nouveautés de chaque version.
C'est tout. La cloche apparaît en haut à droite de l'interface avec vos derniers ajouts, et suit les nouveautés au fil de l'eau.
Saison 4 • Ép. 1-12, ou Ép. 1, 8 pour un lot partiel) ; pistes groupées par album.[!IMPORTANT] Pré-requis :
- Jellyfin 10.11.x ou 12.x
- Un client web — navigateur sur ordinateur, tablette ou téléphone, ou l'application mobile. Les applications TV ont un rendu natif et ne peuvent pas afficher la cloche.
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/jellyfin-12/repository-12.json
Injection automatique, aucun fichier à modifier, et ça survit aux mises à jour de Jellyfin.
https://www.iamparadox.dev/jellyfin/plugins/manifest.json
Ctrl+F5 dans votre navigateur.[!WARNING] Cette méthode nécessite de ré-appliquer le patch après chaque mise à jour Jellyfin, car Jellyfin écrase
index.html. La Méthode 1 est fortement recommandée.
Si vous préférez ne pas installer d'extension tierce :
Linux
sudo sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /usr/share/jellyfin/web/index.html
Docker
docker exec jellyfin sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /jellyfin/jellyfin-web/index.html
Windows — ouvrez le index.html du client web dans un éditeur lancé en administrateur :
C:\Program Files\Jellyfin\Server\jellyfin-web\index.html
et collez cette ligne juste avant la balise </body> :
<script src="/NotifySync/client.js"></script>
Allez dans Tableau de bord > Extensions > NotifySync.
| Paramètre | Défaut | Description |
|---|---|---|
| Quotas | 10 | Nombre maximum d'entrées par catégorie (1–50). Une série entière compte pour une seule entrée, quel que soit le nombre d'épisodes (jusqu'à 500 épisodes stockés par série). |
| Bibliothèques Surveillées | (aucune) | Cochez les dossiers que vous souhaitez voir apparaître dans la cloche. |
| Collections Surveillées | (aucune) | Sélectionnez les collections Jellyfin (BoxSets) à surveiller pour les nouveaux ajouts. Scannées toutes les 15 minutes. |
| Mappage des Catégories | (vide) | Renommez ou regroupez vos bibliothèques dans la cloche (ex. "Mes Films" → "Films"). Une bibliothèque sans mappage garde son propre nom. Les flèches fixent l'ordre des filtres de la cloche. |
| IDs Manuels | (vide) | Ajoutez des IDs ou noms de bibliothèques manuellement pour les configurations avancées (Channels, XFusion). |
| Suivi des Suppressions | activé | Activer/désactiver le journal des suppressions. Requis pour la détection MAJ complète sur les remplacements Sonarr/Radarr (scénario delete+ré-import). Les remplacements sont corrélés dans une fenêtre de 7 jours. |
| Rétention des Suppressions | 30 jours | Nombre de jours de conservation des éléments supprimés (7–365). La borne basse est de 7 jours pour que la fenêtre de détection ait toujours des données — la rétention ne fait que prolonger l'affichage dans le journal admin. |
| Régénérer l'Historique | — | Force un scan complet après modification des bibliothèques ou des catégories. |
| Scanner les Collections | — | Force un scan immédiat des Collections surveillées au lieu d'attendre l'intervalle automatique. |
| Problème | Solution |
|---|---|
| La cloche n'apparaît pas | Vérifiez que File Transformation est installé. Redémarrez Jellyfin. Videz le cache (Ctrl+Shift+R). |
| La cloche a disparu après mise à jour Jellyfin | Vous utilisez la Méthode 2 (injection manuelle) — ré-appliquez la commande sed. Passez à la Méthode 1 (File Transformation) pour éviter ça. |
| Le badge est incorrect | Cliquez sur "Régénérer l'historique". Videz le localStorage du navigateur. |
| Musique non synchronisée | Utilisez "Régénérer l'historique" pour rescanner les pistes audio. |
| Contenu manquant | Vérifiez que la bibliothèque est cochée dans "Bibliothèques Surveillées". |
| Nouvel épisode TV manquant | Vérifiez que la bibliothèque de type Série contenant l'épisode est cochée dans "Bibliothèques Surveillées". |
| Fichier remplacé apparaît en NOUVEAU au lieu de MAJ | Activez le Suivi des Suppressions dans la config — nécessaire pour la détection du scénario delete+ré-import. |
| Un fichier renommé affiche un faux badge MAJ | Un simple renommage est reconnu et reste silencieux. Un badge ne peut subsister que si le renommage a aussi modifié le fichier — retirez la notification, elle ne reviendra pas. |
| Une série déplacée apparaît quand même en NOUVEAU | La détection nécessite le Suivi des Suppressions activé, et elle ne reconnaît qu'un dossier ayant conservé son nom — déplacer et renommer en une fois est indistinguable d'une suppression suivie d'un ajout. |
| Contenu non autorisé visible | Le plugin respecte les permissions Jellyfin — vérifiez les restrictions utilisateur. |
| Erreur 429 | Attendez 30 secondes entre chaque clic sur "Régénérer l'historique" (anti-spam). |
| Incompatible | Utilisez le dépôt qui correspond à votre version de Jellyfin, 10.11.x ou 12.x — voir Installation. |
NotifySync s'intègre parfaitement avec le thème ElegantFin Cinema Edition — un thème CSS inspiré des plateformes de streaming pour Jellyfin avec une suite complète de modules cinématographiques.
Les deux projets fonctionnent ensemble sur PC (navigateur) et mobile (app Jellyfin + navigateur).
⭐ Installation unique, expérience Jellyfin cinéma complète avec notifications temps réel.
⚠️ Note TV : NotifySync ne s'affiche actuellement pas sur les apps TV (Samsung Tizen, Android TV, LG webOS). La cloche est une fonctionnalité du client web et les apps TV utilisent un rendu natif.
NotifySync est maintenu par :
Merci à @muisje et @Wernouxe pour leurs demandes de fonctionnalités et rapports de bugs qui ont façonné ce plugin.
Contributions, rapports de bugs et demandes de fonctionnalités sont les bienvenus sur GitHub.
Distribué sous Licence MIT.
C#
60.7%
HTML
22.2%
JavaScript
17.1%