Guides

How to Add E-Signatures to Your Supabase App

Dark-themed graphic with text "E-Signatures to Your Supabase App." Features colorful icons of arrows and coding symbols, conveying a tech-savvy tone.

Supabase has become the default backend for a huge portion of modern web apps. Whether you're writing code yourself, shipping with Next.js, or building through AI tools like Lovable and Bolt.new, there's a good chance your project runs on Supabase under the hood. And eventually, a lot of those projects need signatures.

Firma.dev is the only e-signature API with a dedicated Supabase integration. It works natively with Edge Functions, Postgres, and webhooks, so you're not bolting on some external system that doesn't understand your stack. You're extending the infrastructure you already have.

How it works (without the technical jargon)

The setup follows a pattern that any Supabase developer will recognize. Your app calls a Supabase Edge Function, which securely talks to the Firma.dev API to create a signing request. The signer recieves the document, signs it, and Firma.dev sends a webhook back to another Edge Function that updates your Postgres database. Your frontend queries that table like any other Supabase table, with Row Level Security already in place.

If you're using Lovable, Bolt.new, or another AI builder that runs on Supabase, you can prompt your way through most of this. The full integration guide includes the exact code for each step, and AI tools can scaffold the rest.

For non-technical founders: the short version is that your app gets the ability to send documents, collect legally binding signatures, and track everything in your existing database. No new infrastructure, no new vendor dashboards to manage.

Under the hood

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

The integration has three moving parts. First, a send-signing-request Edge Function that authenticates the user, calls the Firma.dev API with template and recipient details, and stores the request ID in a signing_requests Postgres table. Second, a firma-webhook Edge Function (deployed with --no-verify-jwt since webhooks don't carry auth headers) that listens for events like signing_request.completed or signing_request.recipient.declined and updates your table accordingly. Third, your frontend, which queries that table through Supabase's client library with RLS policies so users only see their own documents.

You can also embed the signing experience directly in your app using an iframe pointed at Firma.dev's embeddable signing URL. The signer never leaves your interface.

The whole thing deploys with supabase functions deploy and a single supabase secrets set command for your API key. No external servers, no complex auth flows.

What you get

Once connected, your Supabase app can send documents for signature from any template you've built in Firma.dev, track real-time status updates through webhooks, embed signing directly in your UI, and trigger downstream workflows when documents are completed using Supabase's own database triggers.

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 product, Firma.dev's Customer Workspaces give each of your customers their own isolated signing environment with separate templates and usage tracking. That pairs naturally with Supabase's Row Level Security model.

Pricing that works for Supabase projects

Supabase's pricing philosophy is pay-for-what-you-use, and Firma.dev follows the same model. Every envelope costs €0.029 (roughly 3 cents USD). No monthly fees, no per-user charges, no contracts.

For context, most e-signature providers charge $25-$50 per user per month before you send a single document. If you're building a product where signing is a feature (not the whole product), that cost structure doesn't make sense. With Firma.dev, you ship the feature today and only pay when envelopes actually get sent.

Get started

The full Supabase integration guide on docs.firma.dev walks through every step, from storing your API key to handling webhooks. If you've deployed a Supabase Edge Function 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.