Documenso is the open source alternative to DocuSign, aimed at teams that want to self-host their document-signing infrastructure instead of trusting a third-party provider with legally binding signatures. Because it's fully open source, organizations can audit exactly how signatures are created and stored rather than taking a SaaS vendor's word for it. Signing documents digitally introduces a new party to every signature, the signing tool provider, and Documenso's position is that this trust should be earned through auditability and self-hosting rather than assumed. The project describes its goal as building the next generation of open trust infrastructure for digital signatures.
Documenso is built with TypeScript, React Router v7, and Hono for the server, Prisma as the ORM, Tailwind CSS with shadcn/ui and Radix UI for components, and tRPC for the API layer. Stripe handles payments for the hosted version, and Playwright covers end-to-end testing.
The developer quickstart is to fork and clone the repository, copy .env.example to .env, run npm run dx to spin up a Postgres database and an Inbucket mail server in Docker, then run npm run dev (or npm run d to do both in one step). Local access points during development are the app at localhost:3000, the mail catcher at localhost:9000, Postgres on port 54320, and an S3 storage dashboard at localhost:9001. Official Docker images are also published on Docker Hub and GitHub Container Registry, along with DevContainer and Gitpod configurations for a browser-based setup, and a video walkthrough of the manual setup process is available for developers who prefer to follow along visually.
Community discussion happens through GitHub Discussions and a Discord server, and detailed GitHub issues are the primary way to report bugs or propose features, since the project generally pauses external pull requests outside a small group of trusted contributors. Upcoming releases and the public roadmap are tracked separately from the main documentation site, so teams evaluating self-hosting can see what's shipping next before committing to an install.