Muhammad Arslan
Contrátame
Volver a proyectos

PDF Toolkit

Una suite basada en el navegador para combinar, dividir, organizar, convertir y comprimir PDFs, donde los archivos nunca salen de su dispositivo.

Rol: Solo full-stack developmentCronograma: 2025Tipo: Web app / product

Next.js 16

React 19

Tailwind CSS 4

pdf-lib

PDF.js

Ghostscript (WASM)

dnd-kit

JSZip

Organizador de PDF Toolkit con tres páginas de documentos de proyecto sintéticos

Descripción general

PDF Toolkit es una respuesta del lado del cliente a herramientas como iLovePDF. Gestiona las tareas diarias de PDF que la gente necesita, incluyendo combinar archivos, extraer páginas, reordenar y rotar, convertir a y desde imágenes, y comprimir, y realiza todo dentro del navegador. No se sube nada. El sitio de marketing y el catálogo de herramientas se sitúan delante de un conjunto de espacios de trabajo interactivos, siendo cada uno una herramienta autocontenida.

El problema

Las herramientas populares de PDF en línea funcionan todas de la misma manera. Subes tu documento a un servidor, se procesa y descargas el resultado. Para una conversión rápida de imágenes está bien. Para un contrato firmado, el escaneo de un documento de identidad, un formulario médico o un extracto financiero, implica entregar un archivo confidencial a un tercero y confiar en su política de retención. Había una clara oportunidad para una herramienta que realizara las mismas tareas pero manteniendo cada archivo en el propio dispositivo del usuario.

Mi rol y enfoque

Construí todo el producto: el sitio de marketing, el catálogo de herramientas y cada una de las utilidades funcionales. La decisión central fue arquitectónica: realizar todo el trabajo real de PDF en el navegador. Esa elección guio todo lo demás, ya que el procesamiento del lado del cliente significaba no tener servidores que operar, ningún costo por archivo y una garantía de privacidad que podía afirmar con claridad: sus archivos nunca se envían a ningún lado.

Stack tecnológico

FrameworkNext.js 16 (App Router) with React 19
Edición de PDFpdf-lib for structural operations (merge, split, page manipulation)
Renderizado de PDFPDF.js (pdfjs-dist) for previews and thumbnails
CompresiónGhostscript compiled to WebAssembly, which runs entirely in the browser
Interaccióndnd-kit for drag-and-drop page and file ordering; JSZip for bulk image downloads
EstilosTailwind CSS 4 with a shadcn-inspired component set
AnalíticaPostHog

Características clave

Combinar PDFcombinar múltiples archivos, reordenarlos arrastrando y exportar un único documento.
Dividir PDFextraer rangos específicos de páginas (por ejemplo 1-2,5) en un nuevo archivo.
Organizar PDFreordenar, rotar y eliminar páginas antes de exportar.
Imagen a PDFconvertir archivos JPG y PNG a PDF con control de orden mediante arrastrar y soltar.
PDF a imagenrenderizar páginas a imágenes con vistas previas en miniatura y descarga en ZIP.
Visor de PDFun lector integrado con zoom y navegación por páginas, impulsado por PDF.js.
Comprimir PDFreducir el tamaño de archivo utilizando Ghostscript en el navegador.
Diseñado para la visibilidadun sitio de marketing adecuado con mapa del sitio, archivo robots y un llm.txt para rastreadores de IA.

Galería

Organizador de páginas de PDF Toolkit con un resumen de proyecto sintético, mapa del sistema y lista de verificación de lanzamiento
Organizador de PDF Toolkit mostrando un ajuste de exportación a 90 grados para una página de PDF de muestra

Desafíos y soluciones

La parte compleja de prescindir de un servidor es que el navegador tiene que asumir todo lo que habitualmente haría un servidor. Dividí el trabajo en dos motores: pdf-lib se encarga de las modificaciones estructurales en las que se reescribe la estructura interna del documento, y PDF.js se ocupa del renderizado cada vez que una página necesita mostrarse o convertirse en imagen.

La compresión fue el desafío más destacado. La compresión real de PDF suele depender de Ghostscript, una herramienta nativa y robusta que reside en un servidor. Para mantener intacta la promesa de privacidad, utilicé una compilación en WebAssembly de Ghostscript para que ese mismo motor se ejecute localmente en el navegador. La compresión es real y, aun así, no se sube nada. El reordenamiento de páginas y archivos debía sentirse físico y natural en lugar de engorroso, por lo que utilicé dnd-kit para lograr una interacción de arrastrar y soltar fluida, y empaqueté las exportaciones de múltiples imágenes en un único archivo ZIP mediante JSZip en lugar de disparar una docena de descargas.

Resultado

El resultado es un conjunto de herramientas completo al estilo de iLovePDF que funciona sin backend, sin almacenamiento de archivos y sin costes de alojamiento más allá de la entrega estática, al tiempo que ofrece algo que los servicios tradicionales no pueden: una garantía creíble de que los documentos nunca salen del dispositivo. Es una herramienta realmente útil y demuestra cuánto trabajo pesado pueden asumir los navegadores modernos.

¿Tienes un problema de producto similar?

Comparte el producto actual, el resultado que necesitas y las limitaciones que ya existen en el camino. Usaré eso para definir un primer hito razonable.

Servicios de desarrollo de aplicaciones web
Inicia el brief de tu proyecto
Todos los proyectosSiguiente proyectoVCM
PDF Toolkit: herramientas de PDF en el navegador centradas en la privacidad y sin subidas de archivos | Muhammad Arslan