Discover / GTM & Growth
Documenso
by documensoTypeScript
Open-source digital document signing for sales and contracts.
Maturity: stable because 3y old, v2.15.0 released 13d ago. Derived from release and commit history, not a rating.
- Stars
- 14k
- Forks
- 3.0k
- Downloads / mo
- —
- Last commit
- 2026-08-03
- License
- AGPL-3.0
- Open issues
- 213
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · medium confidenceEvery digital signature introduces a third party trust provider you cannot inspect or control.
Use it when
Use it when you need e-signature workflows and want to run and audit the signing infrastructure yourself.
Not the right pick when
The README says external pull requests are no longer accepted, so you cannot expect your patches to be merged upstream.
Capabilities
- digital document signing you can self host
- code you can read, audit, run and fork
- hosted option at documenso.com as an alternative to self hosting
- enterprise plan for large organizations needing extra control
- built on TypeScript, Prisma, tRPC and Tailwind
Cost: Open source with a paid cloud option
Install
Derived from the published package name in the repository, not from a model.
What the repository ships
Detected from the actual files in the repository root.
Latest release v2.15.0
Published 2026-07-21
What's Changed
- fix: auto select field on drop by @dguyen in https://github.com/documenso/documenso/pull/3028
- feat: add field multiselect by @dguyen in https://github.com/documenso/documenso/pull/3031
- fix: invite email placeholder by @Mythie in https://github.com/documenso/documenso/pull/3045
- fix: tighten permission and validation checks by @Mythie in https://github.com/documenso/documenso/pull/3046
- fix: scope organisation group deletion by @dguyen in https://github.com/documenso/documenso/pull/3047
- fix: add missing teams branding guard by @dguyen in https://github.com/documenso/documenso/pull/3049
- fix(email): render Preview inside Body across all email templates by @martindglaser in https://github.com/documenso/documenso/pull/3004
- fix: add additional team group permission checks by @dguyen in https://github.com/documenso/documenso/pull/3052
- fix: french translation for confirmation message by @GregCnpp in https://github.com/documenso/documenso/pull/3050
- feat: add granular signin disable flags and OIDC auto-redirect by @kengru-digito in https://github.com/documenso/documenso/pull/2857
- fix: webhook payload contains stale deletedAt on document cancellation by @Arunkoo in https://github.com/documenso/documenso/pull/2980
- fix: add sticky form update button by @dguyen in https://github.com/documenso/documenso/pull/3056
- chore: extract translations by @github-actions[bot] in https://github.com/documenso/documenso/pull/3013
- chore: upgrade libpdf by @Mythie in https://github.com/documenso/documenso/pull/3058
- fix: remove presigned branding upload by @dguyen in https://github.com/documenso/documenso/pull/3053
- fix: block invisible & control characters and URLs in names by @catalinpit in https://github.com/documenso/documenso/pull/2978
- fix: admin organisation limits and usage UI by @catalinpit in https://github.com/documenso/documenso/pull/3014
- chore: upgrade deps by @Mythie in https://github.com/documenso/documenso/pull/3065
- Add "Apply Your License Key" self-hosting guide by @roshboi in https://github.com/documenso/documenso/pull/3077
- feat: enable real-time validation for email and password fields by @tanushree-coder-girl in https://github.com/documenso/documenso/pull/2204
- docs: update rate limit doc for organisation limit for self hosters by @roshboi in https://github.com/documenso/documenso/pull/3089
New Contributors
- @martindglaser made their first contribution in https://github.com/documenso/documenso/pull/3004
- @GregCnpp made their first contribution in https://github.com/documenso/documenso/pull/3050
Full Changelog: https://github.com/documenso/documenso/compare/v2.14.0...v2.15.0
Tags
README
<img src="https://github.com/documenso/documenso/assets/13398220/a643571f-0239-46a6-a73e-6bef38d1228b" alt="Documenso Logo">
<p align="center" style="margin-top: 20px">
<p align="center">
The Open Source DocuSign Alternative.
<br>
<a href="https://documenso.com"><strong>Learn more »</strong></a>
<br />
<br />
<a href="https://documen.so/discord">Discord</a>
·
<a href="https://documenso.com">Website</a>
·
<a href="https://docs.documenso.com">Documentation</a>
·
<a href="https://github.com/documenso/documenso/issues">Issues</a>
·
<a href="https://documen.so/live">Upcoming Releases</a>
·
<a href="https://documen.so/roadmap">Roadmap</a>
</p>
</p>
<p align="center">
<a href="https://documen.so/discord"><img src="https://img.shields.io/badge/Discord-documen.so/discord-%235865F2" alt="Join Documenso on Discord"></a>
<a href="https://github.com/documenso/documenso/stargazers"><img src="https://img.shields.io/github/stars/documenso/documenso" alt="Github Stars"></a>
<a href="https://github.com/documenso/documenso/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPLv3-purple" alt="License"></a>
<a href="https://github.com/documenso/documenso/pulse"><img src="https://img.shields.io/github/commit-activity/m/documenso/documenso" alt="Commits-per-month"></a>
<a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/documenso/documenso">
<img alt="open in devcontainer" src="https://img.shields.io/static/v1?label=Dev%20Containers&message=Enabled&color=blue&logo=visualstudiocode" />
</a>
<a href="CODE_OF_CONDUCT.md"><img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg" alt="Contributor Covenant"></a>
</p>
<div align="center">
<img src="https://github.com/documenso/documenso/assets/13398220/d96ed533-6f34-4a97-be9b-442bdb189c69" style="width: 80%;" />
</div>
About Documenso
Signing documents digitally should be fast and easy and should be the best practice for every document signed worldwide. This is technically quite easy today, but it also introduces a new party to every signature: The signing tool providers. While this is not a problem in itself, it should make us think about how we want these providers of trust to work. Documenso aims to be the world's most trusted document-signing tool. This trust is built by empowering you to self-host Documenso and review how it works under the hood.
Join us in creating the next generation of open trust infrastructure.
Recognition
<p align="center">
<a href="https://www.producthunt.com/posts/documenso?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-documenso" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=395047&theme=light&period=daily" alt="Documenso - The open source DocuSign alternative | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
<a href="https://www.producthunt.com/posts/documenso?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-documenso" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=395047&theme=light" alt="Documenso - The Open Source DocuSign Alternative. | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
</p>
Community and Next Steps 🎯
- Try Documenso by self-hosting it or signing up at documenso.com.
- Tell us what you think in the Discussions.
- Join the Discord server for any questions and getting to know other community members.
- ⭐ the repository to help us raise awareness.
- Open detailed issues to report bugs or propose features.
Contributing
Note: We no longer accept external pull requests, aside from a small group of trusted contributors we reach out to directly. The best way to contribute is through detailed issues. Read Why We're Pausing External Pull Requests for the reasoning.
- Documenso stays open source. You can read, audit, run, and fork the code.
- To report issues or propose changes, see our contribution guide.
Contact us
Contact us if you are interested in our Enterprise plan for large organizations that need extra flexibility and control.
<a href="https://cal.com/timurercan/enterprise-customers?utm_source=banner&utm_campaign=oss"><img alt="Book us with Cal.com" src="https://cal.com/book-with-cal-dark.svg" /></a>
Tech Stack
<p align="left">
<a href="https://www.typescriptlang.org"><img src="https://shields.io/badge/TypeScript-3178C6?logo=TypeScript&logoColor=FFF&style=flat-square" alt="TypeScript"></a>
<a href="https://prisma.io"><img width="122" height="20" src="http://made-with.prisma.io/indigo.svg" alt="Made with Prisma" /></a>
<a href="https://tailwindcss.com/"><img src="https://img.shields.io/badge/tailwindcss-0F172A?&logo=tailwindcss" alt="Tailwind CSS"></a>
<a href=""><img src="" alt=""></a>
<a href=""><img src="" alt=""></a>
<a href=""><img src="" alt=""></a>
<a href=""><img src="" alt=""></a>
<a href=""><img src="" alt=""></a>
</p>
- TypeScript - Language
- React Router v7 - Framework
- Hono - Server
- Prisma - ORM
- Tailwind CSS - CSS
- shadcn/ui + Radix UI - Component Library
- react-email - Email Templates
- Lingui - Internationalization
- tRPC - API
- @libpdf/core - PDF Signatures
- pdf.js - Viewing PDFs
- @cantoo/pdf-lib - PDF manipulation
- Stripe - Payments
- Biome - Linting & Formatting
- Playwright - E2E Testing
<!-- - Support for opensignpdf (requires Java on server) is currently planned. -->
Local Development
Requirements
To run Documenso locally, you will need
- Node.js (v22 or above)
- Postgres SQL Database
- Docker (optional)
Developer Quickstart
Note: This is a quickstart for developers. It assumes that you have both docker and docker-compose installed on your machine.
Want to get up and running quickly? Follow these steps:
- Fork this repository to your GitHub account.
After forking the repository, clone it to your local device by using the following command:
git clone https://github.com/<your-username>/documenso
- Set up your
.envfile using the recommendations in the.env.examplefile. Alternatively, just runcp .env.example .envto get started with our handpicked defaults.
- Run
npm run dxin the root directory
- This will spin up a postgres database and inbucket mailserver in a docker container.
- Run
npm run devin the root directory
- Want it even faster? Just use
npm run d
Access Points for Your Application
- App - http://localhost:3000
- Incoming Mail Access - http://localhost:9000
- Database Connection Details
- Port: 54320
- Connection: Use your favorite database client to connect using the provided port.
- S3 Storage Dashboard - http://localhost:9001
Developer Setup
Manual Setup
Follow the manual setup guide to configure Documenso on your local machine.
Run in Gitpod
- Click below to launch a ready-to-use Gitpod workspace in your browser.
Run in DevContainer
We support DevContainers for VSCode. Click here to get started.
Video walkthrough
If you're a visual learner and prefer to watch a video walkthrough of setting up Documenso locally, check out this video:
Docker
We provide official Docker images on DockerHub and GitHub Container Registry.
For setup instructions, see the Docker Deployment and Docker Compose guides.
Self Hosting
We support a variety of deployment methods including Docker, Docker Compose, Railway, Kubernetes, and manual deployment.
For full instructions, requirements, and configuration details, see the Self Hosting documentation.
One-Click Deploys
Railway
Render
Koyeb
Elestio
Security
If you believe you have found a security vulnerability in Documenso, please report it through our Security Policy. We prioritize private reports via GitHub Security Advisories. See SECURITY.md for scope and details.
Troubleshooting
For troubleshooting self-hosted deployments, see the Troubleshooting guide and Tips & Common Pitfalls.
I'm not receiving any emails when using the developer quickstart.
When using the developer quickstart, an Inbucket server will be spun up in a docker container that will store all outgoing emails locally for you to view.
The Web UI can be found at http://localhost:9000, while the SMTP port will be on localhost:2500.
I can't see environment variables in my package scripts.
Wrap your package script with the with:env script like such:
npm run with:env -- npm run myscript
The same can be done when using npx for one of the bin scripts:
npm run with:env -- npx myscript
This will load environment variables from your .env and .env.local files.