Muhammad Arslan
Assumimi
Torna ai progetti

PDF Toolkit

Una suite per browser per unire, dividere, organizzare, convertire e comprimere file PDF, in cui i file non lasciano mai il dispositivo.

Ruolo: Solo full-stack developmentTempistiche: 2025Tipo: Web app / product

Next.js 16

React 19

Tailwind CSS 4

pdf-lib

PDF.js

Ghostscript (WASM)

dnd-kit

JSZip

Organizzatore di PDF Toolkit con tre pagine sintetiche di documenti di progetto

Panoramica

PDF Toolkit è una risposta lato client a strumenti come iLovePDF. Gestisce le operazioni quotidiane sui PDF più comuni, tra cui unione di file, estrazione di pagine, riordinamento e rotazione, conversione da e verso immagini e compressione, ed esegue tutto all'interno del browser. Nessun file viene caricato. Il sito di marketing e il catalogo degli strumenti precedono una serie di aree di lavoro interattive, ciascuna delle quali è uno strumento autonomo.

Il problema

I più diffusi strumenti PDF online funzionano tutti allo stesso modo. Si carica il documento su un server, viene elaborato e si scarica il risultato. Per una rapida conversione di un'immagine può andar bene. Per un contratto firmato, la scansione di un documento d'identità, un referto medico o un estratto conto finanziario, significa affidare un file riservato a terze parti fidandosi della loro politica di conservazione dei dati. C'era un chiaro bisogno di uno strumento in grado di svolgere le stesse operazioni mantenendo ogni file direttamente sul dispositivo dell'utente.

Il mio ruolo e approccio

Ho sviluppato l'intero prodotto: il sito di marketing, il catalogo degli strumenti e ogni singola funzionalità operativa. La decisione cardine è stata di carattere architetturale: eseguire tutte le elaborazioni PDF direttamente nel browser. Tale scelta ha orientato ogni altro sviluppo, poiché l'elaborazione lato client ha eliminato la necessità di gestire server, azzerato i costi per singolo file e fornito una garanzia di privacy chiara e trasparente: i file non vengono mai inviati altrove.

Stack tecnologico

FrameworkNext.js 16 (App Router) with React 19
Modifica PDFpdf-lib for structural operations (merge, split, page manipulation)
Rendering PDFPDF.js (pdfjs-dist) for previews and thumbnails
CompressioneGhostscript compiled to WebAssembly, which runs entirely in the browser
Interazionednd-kit for drag-and-drop page and file ordering; JSZip for bulk image downloads
StileTailwind CSS 4 with a shadcn-inspired component set
AnalyticsPostHog

Funzionalità chiave

Unisci PDFcombina più file, riordinali trascinandoli ed esporta un unico documento.
Dividi PDFestrai intervalli specifici di pagine (ad esempio 1-2,5) in un nuovo file.
Organizza PDFriordina, ruota ed elimina pagine prima di esportare.
Da immagine a PDFtrasforma file JPG e PNG in un PDF con controllo dell'ordinamento tramite trascinamento.
Da PDF a immaginerenderizza le pagine in immagini con anteprime a miniatura e download in formato ZIP.
Visualizzatore PDFun lettore integrato con zoom e navigazione tra le pagine, basato su PDF.js.
Comprimi PDFriduci le dimensioni dei file utilizzando Ghostscript direttamente nel browser.
Ottimizzato per l'indicizzazioneun sito di marketing vero e proprio con sitemap, file robots e un file llm.txt per i crawler di intelligenza artificiale.

Galleria

Organizzatore di pagine di PDF Toolkit con brief di progetto, mappa di sistema e checklist di rilascio sintetici
Organizzatore di PDF Toolkit con impostazione di esportazione a 90 gradi per una pagina PDF di esempio

Sfide e soluzioni

La difficoltà di un approccio "senza server" risiede nel fatto che il browser deve eseguire tutte le operazioni normalmente delegate a un server. Ho suddiviso il carico di lavoro su due motori: pdf-lib si occupa delle modifiche strutturali in cui la composizione interna del documento viene riscritta, mentre PDF.js gestisce il rendering ogni volta che una pagina deve essere mostrata a schermo o convertita in immagine.

La compressione è stata la sfida più complessa. Una vera compressione dei PDF si basa in genere su Ghostscript, un pesante strumento nativo ospitato su un server. Per mantenere intatta la promessa di privacy, ho impiegato una build WebAssembly di Ghostscript, consentendo allo stesso motore di operare localmente nel browser. La compressione è autentica e, al contempo, nessun file viene mai caricato. Il riordinamento di pagine e file doveva risultare intuitivo e fluido, così ho adottato dnd-kit per un drag-and-drop naturale, raggruppando le esportazioni di più immagini in un unico file ZIP con JSZip invece di avviare decine di download separati.

Risultato

Il risultato è un toolkit completo in stile iLovePDF che funziona senza backend, senza archiviazione di file e senza costi di hosting oltre alla distribuzione statica, offrendo al contempo qualcosa che i player affermati non possono garantire: la certezza affidabile che i documenti non lasciano mai il dispositivo. È uno strumento davvero utile, che dimostra quanto carico di lavoro possano gestire i browser moderni.

Hai un problema di prodotto simile?

Condividi il prodotto attuale, il risultato di cui hai bisogno e i vincoli già presenti. Li utilizzerò per definire un primo milestone sensato.

Servizi di sviluppo di applicazioni web
Inizia il tuo project brief
Tutti i progettiProgetto successivoVCM
PDF Toolkit: Strumenti PDF nel Browser Orientati alla Privacy Senza Caricamenti | Muhammad Arslan