Muhammad Arslan
M'engager
Retour aux projets

PDF Toolkit

Une suite dans le navigateur pour fusionner, diviser, organiser, convertir et compresser des PDF, où les fichiers ne quittent jamais votre appareil.

Rôle : Solo full-stack developmentCalendrier : 2025Type : Web app / product

Next.js 16

React 19

Tailwind CSS 4

pdf-lib

PDF.js

Ghostscript (WASM)

dnd-kit

JSZip

Organiseur PDF Toolkit présentant trois pages synthétiques de documents de projet

Aperçu

PDF Toolkit est une alternative côté client à des outils comme iLovePDF. Elle prend en charge les tâches PDF courantes auxquelles les utilisateurs font appel, notamment fusionner des fichiers, extraire des pages, réorganiser et pivoter, convertir vers et depuis des formats d'image, et compresser, le tout directement dans le navigateur. Rien n'est téléversé. Le site marketing et le catalogue d'outils précèdent un ensemble d'espaces de travail interactifs, chacun étant un outil autonome.

Le Problème

Les outils PDF en ligne populaires fonctionnent tous de la même façon : vous téléversez votre document sur un serveur, il est traité, puis vous téléchargez le résultat. Pour une conversion rapide d'image, cela convient. Pour un contrat signé, un scan de pièce d'identité, un dossier médical ou un relevé financier, cela implique de confier un fichier confidentiel à un tiers en faisant confiance à sa politique de conservation des données. Il existait un besoin évident pour un outil effectuant les mêmes tâches tout en conservant chaque fichier localement sur la machine de l'utilisateur.

Mon Rôle et Mon Approche

J'ai développé l'intégralité du produit : le site marketing, le catalogue d'outils et chaque outil fonctionnel. La décision déterminante relevait de l'architecture : exécuter l'ensemble des opérations PDF directement dans le navigateur. Ce choix a guidé tout le reste, car le traitement côté client signifierait aucun serveur à administrer, aucun coût par fichier et une garantie de confidentialité exprimable en toute simplicité : vos fichiers ne sont transmis nulle part.

Stack Technique

FrameworkNext.js 16 (App Router) with React 19
Édition de PDFpdf-lib for structural operations (merge, split, page manipulation)
Rendu de PDFPDF.js (pdfjs-dist) for previews and thumbnails
CompressionGhostscript compiled to WebAssembly, which runs entirely in the browser
Interactiondnd-kit for drag-and-drop page and file ordering; JSZip for bulk image downloads
StyleTailwind CSS 4 with a shadcn-inspired component set
AnalytiquePostHog

Fonctionnalités Clés

Fusionner un PDFcombiner plusieurs fichiers, les réorganiser par glisser-déposer et exporter un document unique.
Diviser un PDFextraire des plages de pages précises (par exemple 1-2,5) dans un nouveau fichier.
Organiser un PDFréorganiser, pivoter et supprimer des pages avant l'export.
Image en PDFconvertir des fichiers JPG et PNG en PDF avec organisation de l'ordre par glisser-déposer.
PDF en Imageconvertir des pages en images avec aperçus sous forme de miniatures et téléchargement sous archive ZIP.
Visualiseur de PDFun lecteur intégré avec zoom et navigation entre les pages, propulsé par PDF.js.
Compresser un PDFréduire la taille du fichier grâce à Ghostscript dans le navigateur.
Optimisé pour le référencementun véritable site marketing avec plan de site (sitemap), fichier robots et fichier llm.txt pour les robots d'exploration IA.

Galerie

Organiseur de pages PDF Toolkit avec document de synthèse de projet fictif, cartographie système et liste de contrôle de déploiement
Organiseur PDF Toolkit montrant un paramètre d'export avec rotation à 90 degrés pour une page PDF d'exemple

Défis et Solutions

La difficulté d'une approche « sans serveur » est que le navigateur doit accomplir tout ce qu'un serveur prend habituellement en charge. J'ai réparti la charge entre deux moteurs : pdf-lib gère les modifications structurelles nécessitant la réécriture des données internes du document, et PDF.js prend en charge le rendu chaque fois qu'une page doit être affichée ou convertie en image.

La compression représentait la difficulté majeure. Une véritable compression PDF dépend habituellement de Ghostscript, un outil natif robuste exécuté sur serveur. Pour préserver l'engagement de confidentialité, j'ai utilisé une version WebAssembly de Ghostscript afin que ce même moteur s'exécute localement dans le navigateur. La compression est bien réelle, et aucun fichier n'est téléversé. La réorganisation des pages et des fichiers devait être fluide et naturelle ; j'ai donc utilisé dnd-kit pour un glisser-déposer ergonomique, et regroupé les exports multi-images dans une seule archive ZIP via JSZip au lieu de déclencher une dizaine de téléchargements individuels.

Résultat

Le résultat est une boîte à outils complète de type iLovePDF qui fonctionne sans backend, sans stockage de fichiers et sans coût d'hébergement au-delà de la diffusion statique, tout en offrant ce que les acteurs historiques ne peuvent pas proposer : une garantie crédible que les documents ne quittent jamais l'appareil. C'est un outil véritablement utile, qui démontre l'ampleur des tâches complexes que les navigateurs modernes peuvent désormais prendre en charge.

Vous avez un problème de produit similaire ?

Partagez le produit actuel, le résultat dont vous avez besoin et les contraintes qui font déjà obstacle. J'utiliserai cela pour définir un premier jalon raisonnable.

Services de développement d'applications web
Commencer votre brief de projet
Tous les projetsProjet suivantVCM
PDF Toolkit : Outils PDF dans le navigateur axés sur la confidentialité, sans téléversement | Muhammad Arslan