The mechanics of Docusign fit in a weekend: upload a PDF, place fields, email a link, capture a signature, stamp it onto the file and log each step. What you pay for sits outside the code: a name that banks, landlords and courts already accept, identity checks, certificate-based signatures where a country asks for them, and an audit trail from a vendor willing to stand behind it. A home-built signer produces a simple electronic signature, which can be enough for low-stakes paperwork if you keep proper records. For anything disputed or regulated, use Docusign, or a hosted open-source option such as Documenso or DocuSeal that has already done the compliance work.
Before you buildSigning documents that others send you is free. For your own sends, Documenso's hosted free plan (5 documents a month) or self-hosted DocuSeal may do the job without any build.
Build me a small self-hosted e-signature tool to replace Docusign for my occasional documents. Requirements: - Node.js 22 + TypeScript: a Fastify API and a React UI built with Vite. `npm start` serves http://127.0.0.1:4950; links sent to signers are built from BASE_URL in .env. - Storage: better-sqlite3 in ./data/sign.db and PDFs in ./data/files/. The original upload is never modified; the signed copy is written next to it. - Sender flow: upload a PDF, render pages with `pdfjs-dist`, drag signature, date and text fields onto them, assign each field to a signer (name and email), then send. - Signing links: a random 32-byte token per signer, stored hashed, expiring after 14 days. A signer sees only their own fields. Send the link with `nodemailer` using SMTP settings from .env. - Signer page: shows the PDF, needs a tick on "I agree to sign electronically", then lets the signer draw (`signature_pad`) or type a signature and submit. A Decline button records a reason. - Finishing: when everyone has signed, stamp the signatures with `@cantoo/pdf-lib`, append a certificate page (title, SHA-256 of the original, each signer's name, email, time, IP address and user agent) and compute the SHA-256 of the final file. Email the result to everyone. - Audit log: an append-only table of events (created, sent, opened, signed, declined, expired), shown to the sender and exportable as CSV. - Single sender, no accounts for signers, no telemetry; mail goes only through my SMTP server. - Out of scope: identity verification, certificate-based or qualified signatures, SMS, bulk send, templates and integrations. - README: setup, SMTP and tunnel instructions, and a plain note that this produces a simple electronic signature, so contracts that need stronger proof should go through a vendor.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own DocuSign.
Add templates to the e-signature tool in this folder. Requirements: - Save a document's field layout (type, page, position, size, signer role) as a template. - Start a new send from a template by uploading a PDF and mapping roles to names and emails. - Reject a template when the new PDF has fewer pages than the highest page used. - A Templates page with rename and delete. - Update the README.
Add reminders to the e-signature tool in this folder. Requirements: - A daily job (`node-cron`) that emails unsigned signers after 3 days and again after 7. - Void the document after the 14 day link expiry and email the sender. - A REMINDER_DAYS setting in .env and a per-document switch to turn reminders off. - Log every reminder in the audit table. - Update the README.
Add a digital signature to the final PDFs of the e-signature tool in this folder. Requirements: - Sign the finished PDF with `node-signpdf` using a PKCS#12 file named in .env. - Generate a self-signed certificate with a command `npm run make-cert` for testing. - Show in the sender view whether the file's signature still validates. - Say plainly in the README that a self-signed certificate proves the file is unchanged, not who signed. - Update the README.
Add a Docusign importer to the e-signature tool in this folder. Requirements: - Read DOCUSIGN_ACCESS_TOKEN and DOCUSIGN_ACCOUNT_ID from .env and page through completed envelopes with the eSignature REST API. - For each envelope download the combined PDF and the certificate of completion into ./data/archive/<year>/<envelope-id>/, and skip those already saved. - Respect rate limits with a pause and retry on 429 responses. - Write an index.csv with subject, sent date, signers and file paths. - Update the README with how to get a token.
A signature only helps if the other side accepts it without argument. Docusign is the name legal teams, landlords and banks already trust, and each finished envelope comes with a certificate recording who signed, when and from where. Teams add the plumbing: templates, reminders and links into the CRM or the file store. For one person signing a few documents a month, the fee mostly buys that acceptance.
Estimate · Free on your own machine. A tunnel is free; a small VPS for a permanent address adds a few dollars a month. The build is token usage on your agent plan.
Checked 2026-10-14 against DocuSign's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Personal | $11 | $11 | One user, 5 envelopes a month, templates, stored agreements, 1,000+ integrations. |
| Standard | $30 | $30 | Up to 50 users, 100 envelopes per user per year, shared templates, branding, comments, delegated signing. |
| Business Pro | $45 | $45 | Up to 50 users, 100 envelopes per user per year, bulk send, payment collection, web forms, PowerForms. |
| Enhanced | custom | — | Custom envelope limits, SSO, central org management, 24/7 support, Salesforce document generation. |
No free plan is listed, and signing a document someone sends you never needs an account. Support pages mention a 30-day trial that ends in a free account.
Not really. A signature only helps if the other side accepts it without argument. Docusign is the name legal teams, landlords and banks already trust, and each finished envelope comes with a certificate recording who signed, when and from where. Teams add the plumbing: templates, reminders and links into the CRM or the file store. For one person signing a few documents a month, the fee mostly buys that acceptance. The prompt on this page builds the closest honest substitute.
About $11 a month on the Personal plan, $132 a year (checked 2026-10-14).
Recognition: other parties and courts know Docusign's certificate of completion; Identity checks, SMS delivery and signature types with stronger legal standing; Connections to Google Drive, Salesforce, Slack and 1,000+ other apps; Bulk send, payment collection, web forms and locked templates; The mobile app and signing screens in dozens of languages. If any of those matter to you, keep paying.
Yes: Documenso (open source), DocuSeal (open source), OpenSign (open source).