The problem behind a signature
Scribly is an AI-powered document platform built around digital workflows. Signing was a natural next step for it: a document that can be prepared online but has to be signed elsewhere breaks the workflow at the last moment.
Adding a signature button is the simple part. The harder question is who actually signed. A signature is only as trustworthy as the identity behind it, so the feature needed a verified identity check as part of the signing step itself.
People also hesitate over documents they do not fully understand. If a signer has to leave the page to work out what a clause means, the flow suffers, so help had to be available during review.
What we knew before we built
No before-and-after baseline is published for this project, so this page does not offer an improvement figure. What can be stated is what the feature was set up to do.
- 4
- Objectives: secure signing, verified identity, regulatory support and a seamless experience
- 0
- Signatures meant to go through without a verified identity
- 5
- Main components: React, Django, Celery, OpenAI and BankID
Those objectives became three requirements for the work. The signing flow had to be simple on any device. Every signature had to be tied to a verified identity. And the slower work behind a signature could not hold up the person signing.
The approach we chose
Each part of the system was given one clear job:
- React.js. A clean, responsive interface for uploading, reviewing and signing documents.
- Django. Document management, user sessions and signature verification workflows.
- BankID. Authentication of each user before signing.
- Celery. Background tasks such as processing signature requests, sending notifications and maintaining logs.
- OpenAI's ChatGPT. Real-time explanations and guidance while a user works through a document.
A signature moves through four stages:
- Upload. The user adds a document through the React interface.
- Review. They read it and can ask for explanations and guidance as they go.
- Verify. BankID authenticates the user before signing.
- Sign and process. The signature is recorded, and Celery handles the follow-up work in the background.
What we built
Our team built the signing feature across the frontend and backend, along with its BankID and AI integrations.
An interface for upload, review and signing
The React.js frontend lets users upload, review and sign documents through a clean, responsive interface designed to work across devices.
Document and signature workflows
The Django backend handles document management, user sessions and the workflows that verify signatures.
BankID before signing
BankID authenticates users before they sign, so that each signature is tied to a verified identity rather than simply to an account login.
Background processing
Celery processes signature requests, sends notifications and maintains logs in the background, so this work does not hold up the interface.
AI guidance during signing
OpenAI's ChatGPT was integrated to help users understand documents, offering real-time explanations and guidance throughout the signing process.
A signature is only as trustworthy as the identity behind it.
The guardrails around a signature
A signature can commit someone to something, so the controls around it were part of the feature rather than something added afterwards.
- Identity before signing. Users authenticate with BankID before they sign, tying each signature to a verified identity.
- Verification workflows. The Django backend runs signature verification as a defined workflow.
- Logs. Background tasks maintain logs of signing activity.
- Guidance, with the decision left to the signer. AI explanations help a person understand a document. The person still decides whether to sign, and the guidance is not legal advice.
- A clear view of compliance. Whether a signature is legally valid depends on the jurisdiction, the document type and how the service is operated. We built the feature to support digital signature and data protection requirements, and do not describe it as compliant in itself.
What was reported
The project delivered online signing with BankID identity checks and AI guidance. The effects below are what the project team reported; none of them is a measured result:
- Verification. BankID authentication ties signatures to a verified identity, which is intended to build trust.
- Workflow. Automated signing was reported to reduce manual paperwork and turnaround time. No figure is published here.
- Experience. The interface is designed to make signing simple and accessible.
- Architecture. Django and Celery were chosen to keep performance reliable under load. No load figures are published here.
What stays hard
Four challenges come with this kind of feature, and any team building one should plan for them.
- Identity without friction. The identity check has to be strong, yet it comes at the moment when a person most wants to finish.
- Regulatory requirements. Digital signature and data protection rules have to be understood for each place the product is used, and they shape the design.
- AI around legal documents. Explanations need to be helpful without being mistaken for legal advice, and sending documents to an AI service calls for careful thought about data handling.
- Reliable background work. Signature requests, notifications and logs all run after the user has moved on, so failures have to be caught rather than go unnoticed.