How Documenso built an open source DocuSign alternative
Documenso is an open source document signing platform that anyone can self-host or use as a cloud service. It runs on a TypeScript monorepo with React Router, Hono, tRPC, Prisma and PostgreSQL, and the team wrote its own PDF library to handle digital signatures.
Website analytics, as listed in the privacy policy.
How they built it
Trust through open code
Documenso calls itself the open source DocuSign alternative, and the bet is that trust comes from code anyone can read and from the option to self-host. The code is AGPLv3.
The project ships official Docker images and supports Docker Compose, Railway, Render, Kubernetes and manual installs. Documents are stored in PostgreSQL by default, with S3-compatible storage as an option.
The app started on Next.js, which the team called a no-brainer for server rendering, easy routing and its community. Over time, Server Actions became hard to debug, builds broke on async chunks, hot reload climbed to about 45 seconds and Turbopack kept failing for them.
In March 2025 they explained the move to React Router (the successor to Remix) with Vite. It was a straight lift and shift with no new features. They now use tRPC where Server Actions used to be.
Signing touches every part of a PDF's life, and no JavaScript library covered all of it. They used pdf.js for rendering, pdf-lib for editing and a separate Rust library with N-API bindings just for signatures, and kept patching the gaps.
In January 2026 they released LibPDF, a TypeScript library that parses, edits and signs PDFs. It replaced the old Rust signing code, and Documenso already runs it in production.
The repo is an npm workspace driven by Turborepo. Biome handles linting and formatting, Playwright runs the end-to-end tests, Lingui handles translations and Inngest runs background jobs.