PDF Toolkit
ファイルが手元のデバイスから外部に出ることのない、PDFの結合、分割、整理、変換、圧縮に対応したブラウザ完結型スイート。
Next.js 16
React 19
Tailwind CSS 4
pdf-lib
PDF.js
Ghostscript (WASM)
dnd-kit
JSZip

概要
PDF Toolkitは、iLovePDFなどのツールに対するクライアントサイドからの回答です。ファイルの結合、ページの抽出、並べ替えや回転、画像との相互変換、圧縮など、ユーザーが日常的に必要とするPDF処理に対応し、そのすべてをブラウザ内で行います。アップロードは一切発生しません。マーケティングサイトとツールカタログの背後には、それぞれが独立した機能を持つ一連のライブワークスペースが配置されています。
課題
一般的なオンラインPDFツールはどれも同じ仕組みです。ファイルをサーバーにアップロードし、処理された結果をダウンロードします。簡単な画像変換程度であれば問題ありません。しかし、署名済み契約書、身分証明書スキャン、診療記録、財務諸表などの場合、機密ファイルを第三者に預け、そのデータ保持ポリシーを信用することを意味します。同様の処理を行いながら、すべてのファイルを手元のマシン内にとどめておけるツールには明確な需要がありました。
役割とアプローチ
マーケティングサイト、ツールカタログ、そして実際に動作する各ツールに至るまで、プロダクト全体を一人で構築しました。設計の中核となったのはアーキテクチャ上の判断です。すべての実質的なPDF処理をブラウザ内で行うという点です。この選択が他のあらゆる設計を方向づけました。クライアントサイド処理によって運用サーバーが不要となり、ファイルごとの従量コストもゼロになり、「お客様のファイルはどこにも送信されません」と明確に保証できるようになりました。
技術スタック
主な機能
ギャラリー


課題と解決策
「サーバーなし」の難点は、サーバーが通常行うすべての処理をブラウザ側で引き受ける必要がある点です。処理は2つのエンジンに分散させました。ドキュメントの内部構造を書き換える構造的編集にはpdf-libを使用し、ページを表示したり画像に変換したりするレンダリング処理にはPDF.jsを採用しています。
最大の難関は圧縮処理でした。本格的なPDF圧縮は通常、サーバー上で動作する重量級のネイティブツールであるGhostscriptに依存します。プライバシー保護の約束を果たすため、GhostscriptのWebAssemblyビルドを採用し、同一のエンジンがブラウザ上でローカル動作するようにしました。圧縮品質を維持しつつ、外部へのアップロードは一切生じません。また、ページやファイルの並べ替えが煩雑にならず直感的に操作できるようdnd-kitによるスムーズなドラッグ&ドロップを実装し、複数画像のエクスポートでは何十件も個別ダウンロードが走るのを防ぐためJSZipで単一のZIPにまとめました。
成果
その成果が、バックエンドなし、ファイルストレージなし、静的配信以外のホスティング費用ゼロで動作する、完全なiLovePDFスタイルのツールキットです。さらに、既存の大手サービスが提供できない「文書がデバイスから一切外部に出ないという確かな保証」を実現しています。実用的で有用なツールであり、最新ブラウザがどれほど高度な処理を担えるかを実証しています。
同様のプロダクト課題をお持ちですか?
現在のプロダクト状況、達成したい成果、直面している制約についてお聞かせください。それらをもとに適切な第1マイルストーンを策定します。
Webアプリケーション開発サービス