What this editor is built with
The editor combines open-source software with one commercial component. Listing them is both a thank-you to the people who made them and a way for you to see what handles your document.
| Component | By | Used for | Licence |
|---|---|---|---|
| PDF.js | Mozilla | Draws the pages in your browser | Apache License 2.0 |
| Aspose.PDF for .NET 21.9 | Aspose | Rewrites text, applies page operations and writes the final file on the server | Commercial licence held by the operator |
| Mono | Mono Project | Runs the server engine | MIT License |
| React | Meta and contributors | User interface of the editor | MIT License |
| Zustand | Poimandres | State handling in the editor | MIT License |
| Radix UI Primitives | WorkOS | Menus and dialogs | MIT License |
| Lucide | Lucide contributors | Icons | ISC License |
| idb-keyval | Jake Archibald | Keeps your session in the browser | Apache License 2.0 |
| Vite | Vite contributors | Build tool | MIT License |
| Liberation Fonts 2 | Red Hat and contributors | Fonts for text you add (also embedded in the PDF) | SIL Open Font License 1.1 |
| Montserrat | The Montserrat Project Authors | Typeface of this website and the logo | SIL Open Font License 1.1 |
| Caveat, Dancing Script, Sacramento | Their respective authors | Handwriting of the slogan and of typed signatures | SIL Open Font License 1.1 |
The licence texts of the fonts are available at LICENSE-Liberation.txt and LICENSE-Montserrat.txt; the PDF.js licence is at /app/pdfjs/LICENSE.
How the parts work together
PDF.js renders the pages in your browser, so scrolling and zooming need no server. The editor’s own code handles the objects you place on a page. Changes to existing text and to the page order are sent to the engine on our server, which uses Aspose.PDF to modify the file and returns a new version. The full picture is described in How editing a PDF actually works.