Déposez une image, un JS, un CSS ou une police, cliquez pour en choisir un, ou collez une URL.
La démo privilégie la latence sur la taille : elle réduit les grandes images et utilise des réglages d'encodeur rapides. Pour les fichiers les plus légers, utilisez l'API avec vos propres paramètres.
ou scanner tout votre site →
Allégez votre front-end.
La plus petite tisseuse du web, pour le web le plus léger.
Patu optimise les ressources statiques qu'une page charge : images, SVG, JavaScript, CSS et polices. Les images visent un score de qualité perceptuelle ; tout le reste est converti sans perte. Envoyez une ressource, récupérez quelque chose de plus léger qui s'affiche à l'identique. En ligne, ou stocké derrière un CDN avec un manifeste d'URLs et Subresource Integrity.
Ce que ça fait
- Des images à la qualité choisie au visuel. Recherche la qualité d'encodage pour atteindre un score ssimulacra2, pas un Q deviné, et renvoie de l'AVIF et du WebP avec un repli JPEG/PNG, plus les largeurs responsives demandées.
- Le SVG, chemins compris. Nettoie le SVG puis réécrit la géométrie et la structure des chemins avec silk, réduisant les dessins riches en chemins de 67 à 88 % tout en rendant à l'identique.
- JavaScript et CSS. Minifiés avec esbuild (espaces et syntaxe sûre uniquement, sans jamais renommer les noms exportés par votre code), puis compressés en périphérie.
- Polices en WOFF2. TTF/OTF/WOFF deviennent WOFF2 via woffify, 57-70% plus légères ; le sous-ensemble de glyphes en option supprime ce qu'une page n'utilise jamais.
- Subresource Integrity intégré. Chaque réponse porte un jeton SHA-384
X-Patu-Integrity, pour épingler une ressource qu'un CDN compromis ne peut pas altérer. - En ligne ou stocké, dédupliqué. Récupérez les octets directement, ou laissez Patu conserver les variantes et vous fournir un manifeste d'URLs servi en périphérie. Les entrées identiques sont dédupliquées par hash de contenu, et Patu ne renvoie jamais plus que ce qu'il a reçu.
Démarrage rapide
Patu s'authentifie par clé API. Envoyez les octets bruts ; déclarez les ressources non-image avec Content-Type.
# Inline: get the optimised bytes back curl -X POST "https://patu.dev/v1/compress?formats=avif,webp,fallback&target=80" \ -H "X-Api-Key: $PATU_KEY" \ --data-binary @photo.jpg -o photo.avif # JS, CSS or a font (routed by Content-Type) curl -X POST "https://patu.dev/v1/compress" \ -H "X-Api-Key: $PATU_KEY" -H "Content-Type: font/ttf" \ --data-binary @Inter.ttf -o Inter.woff2 # Stored: persist the variants, get a JSON manifest of URLs curl -X POST "https://patu.dev/v1/compress?mode=stored&widths=480,1024" \ -H "X-Api-Key: $PATU_KEY" \ --data-binary @photo.jpg
Pas de clé API ? Déposez une image, un JS, un CSS ou une police ci-dessus pour essayer la démo publique. Les paramètres complets, la forme des réponses et les endpoints de ressources sont sur la page API.