Guides

How to Add E-Signatures to Your Wasp App

Two gray squares with stylized logos are connected by curved arrows on a dark background. Text reads "E-Signatures to Your Wasp App" in white.

Wasp is a full-stack framework for React, Node.js, and Prisma that lets you define auth, server actions, and database entities in a declarative config file. Their Open SaaS template ships with auth, payments, and a database out of the box, and it's one of the most popular SaaS boilerplates on GitHub with over 10,000 stars. If you're building a SaaS product on Wasp, adding e-signatures is a natural next step for anything in legal, HR, consulting, or real estate.

Firma.dev integrates directly with Wasp's server actions and Prisma models. You define a Wasp action, call the Firma.dev API from your server-side code, and track everything in your existing database. No external infrastructure, no new services to manage.

How it works (the short version)

Wasp's architecture makes this clean. You declare a server action in your .wasp config file, implement it in TypeScript, and call it from any React component. The action runs server-side (so your API key never touches the browser), creates a signing request through the Firma.dev API, and stores the result in your Prisma database. The signer recieves the document via email or through an embedded iframe in your app.

When the document is signed, Firma.dev sends a webhook to a Wasp API route that updates the signing request status in your database. Your frontend picks up the change automatically through Wasp's reactive queries.

If you're already running Open SaaS, you have auth, a database, and server actions ready to go. The Firma.dev integration adds maybe 100 lines of code across two files.

Under the hood

For developers who want to understand the architecture before jumping into the docs:

The integration has four pieces. First, a SigningRequest Prisma entity that tracks each signing request with its Firma.dev ID, template, signer email, and status. Second, a sendSigningRequest Wasp action that reads your API key from .env.server, calls Firma.dev's create-and-send endpoint, and writes the result to your database. Wasp handles the client-server RPC automatically, so your React component just calls the action like a regular async function.

Third, a webhook handler declared as a Wasp api route (with auth: false since webhooks don't carry session tokens) that listens for events like signing_request.completed and updates your Prisma records. Fourth, an optional embedded signing component: an iframe pointed at https://app.firma.dev/signing/{id} that lets signers complete documents without leaving your app.

The whole thing works with Wasp's type safety. You type your action input and output, and Wasp infers the types on the frontend automatically.

You can also connect Firma.dev's Docs MCP server to Cursor or Claude while building, so your AI assistant can reference the full API documentation as it generates integration code.

What you get

Once connected, your Wasp app can send documents for signature from any Firma.dev template, track real-time status updates through webhooks and Prisma, embed signing directly in your UI, and trigger downstream workflows when documents are completed.

Every signature is legally binding under the ESIGN Act, UETA, and eIDAS (SES and AdES). All document data is stored in the EU on AWS infrastructure in Paris and Stockholm.

If you're building a multi-tenant SaaS, Firma.dev's Customer Workspaces give each of your customers their own isolated signing environment with seperate templates and usage tracking. That pairs well with Wasp's multi-tenancy patterns.

Pricing that works for SaaS builders

Open SaaS exists because paying $300 to $2,000 for boilerplate code felt unreasonable. The same logic applies to e-signatures. Most providers charge $25 to $50 per user per month, which adds up fast when signing is just one feature in your product.

Firma.dev charges €0.029 (roughly 3 cents USD) per envelope. No monthly fees, no per-user charges, no contracts. You ship the feature and only pay when envelopes get sent. For an early-stage SaaS on Open SaaS, that means you can launch with e-signatures on day one without adding a $300/month line item to your burn rate.

Get started

The full Wasp integration guide on docs.firma.dev walks through every step: defining the Prisma entity, creating the server action, wiring up webhooks, and embedding the signing experience. If you've built a Wasp action before, you'll have signing requests running in under an hour.

Get started with Firma.dev for free, no credit card required.

  1. Heading

Background Image

Ready to add e-signatures to your application?

Get started for free. No credit card required. Pay only €0.029 per envelope when you're ready to go live.

Background Image

Ready to add e-signatures to your application?

Get started for free. No credit card required. Pay only €0.029 per envelope when you're ready to go live.

Background Image

Ready to add e-signatures to your application?

Get started for free. No credit card required. Pay only €0.029 per envelope when you're ready to go live.