Idea of an experienced entrepreneur
I’ll need to start with conventions and formalities: we signed an NDA and properly abide by it, so we can’t disclose neither the client’s, nor the project’s real name. Let’s call it e-Signature project. The client has worked with us for a long time: together we’ve already made several projects. You can remember him from this case study👇
The E-Signature project continues our cooperation. It’s a part of the ecosystem of services that covers all demands of the user. Although, the product is useful on its own.
We started the project about 1,5 years ago. The client wanted us to create a service where users would upload documents, indicate a place for future signature, and send the document to the signer. Of course,such a signature is not valid without ‘authentication’, so we were to figure out how to legitimize the process.
We knew the client, the client knew us. Without further ado, we started working.
Why it’s profitable to copy competitors
Our main reference was HelloSignhttps://www.hellosign.com/. Price was the parameter that differed our project from the competitor — the client was ready to give access to the service at a lower price. Apart from that the service is very similar to HelloSign: legal in more than 60 countries, allows users to save signatures and get notifications.
Some might think that dumping is not a very ‘lofty’ strategy. But it works and shows results. Uber is a great example — to win a market share at the start, they significantly lowered ride prices and paid drivers for extra expenses. Our client had a similar plan: claim 2-3% of market share to make the project self-sufficient. It’s unlikely that a large competitor that has regular income from a big customer database will start dumping and change strategy.
The client’s approach appeared to us practical: instead of spending years to invent something that doesn’t exist yet, just take a working idea and think about how to occupy a few percent of market share. That’s why price was the only thing we changed.
Copying is not easy either
Probably, you can imagine how the process of signing electronic documents works: upload → send → sign → receive. I’ll tell you how exactly we arranged it and why on the inside it’s harder than it looks on the outside.
Making an interface that allows users to move fields with a cursor is not a big deal for frontend developers. But implementing such a feature considering screen size and document orientation is.
Backend developers also worked hard: for example, when uploading a document, we needed to break it into several PNG images. That’s how it all worked and why it was so complicated:
- Document in free format is uploaded to the service.
- Open Office (open source project with office applications) converts the document to PDF and returns to the service.
- But since the document was uploaded in free format, we needed to consider many different aspects: document orientation (landscape or portrait?), document language, number of pages.
- After that we break the PDF file into PNG images. That’s required for the work of the Interact library: it allows us to indicate places for future signatures in the document.
- Also, users can put needed fields in the document. That can be:
- text field;
- signature: users can choose font and type/upload image/handwrite.
We also made it possible to sign documents in arbitrary order — however the users need. Either signers sign the document one by one (CEO, CTO, etc.), and every next member sees the signature of the previous one. Or simultaneously: everyone gets the document at the same time and knows nothing about other people’s signatures.
How to make an e-signature legal
As you understand, it’s not enough to just add a signature to a document. It needs legal validity. Although, this magic is restricted outside of Hogwarts, so it only works in certain countries. For example, in Russia such service would have no legal force but in the USA, Canada, UK, China, India, Germany, France, Spain, Italy, Japan, South Korea, Turkey, Switzerland and Brazil it’s possible to do anything: contest inheritance in court or make a million dollar deal.
We integrated with Notariushttps://notarius.com/. But it took some time and effort. We were building a prototype of a hypothetical service for legitimizing e-signatures supposing that we will buy a certificate and build the platform for signing documents by our own forces. And bought it but, of course, things appeared to be much more complicated.
Time moved on, and the support of the service where we bought the certificate wasn’t answering our questions. We didn’t understand if we could adapt the certificate to our project’s requirements till the last moment. Then we started to search for ready-made solutions.
We started with competitor analysis, checked what they use to legitimize signatures. Focused on these 4 services:
To make a considered decision, we negotiated with representatives of each service. Told them about the goals of our project and asked questions to find out if their product can cope with our tasks: which pitfalls we might face, do they provide support, which specifications they have, etc.
Notarius fit all our criteria: complex approach, support, clear specifications, simple integration. And the price was very attractive which is important for the client’s strategy.
Outside problem on our territory
We expected to spend a lot of time on integrations and a little on negotiations. But the result was the opposite: we integrated faster than planned initially — in a week. And missed all deadlines with negotiations and processing.
It happened because occasionally we needed to fix almost everything asap. Notarius is a third-party service, and sometimes it behaved not the way we wanted. The thing is that the service gives us their middleware application that we needed to deploy on our servers. This app’s backend interacts with the backend of our service — this way we provide data privacy and signatures’ legitimacy. We had issues exactly with this part of work. Then we changed the configuration of their app on our server, and it helped us solve the problem.
As a result, that’s how the integration works now:
- We get the middleware app from Notarius and host it on our server.
- When a document is being signed, our backend sends a request to the middleware app to approve the signature.
- Middleware app redirects the document, already encrypted, to the servers of Notarius and receives the approved signature.
- Middleware app returns the legitimately signed document to our service E-Signature.
First users and an important API
In February 2021 the project was run in prod. Today, there are about 20 000 registered users, and it’s a very good result for the MVP. For now, we support the service and add new features: the first users shared their want-tos almost immediately. We created a roadmap, gathered a team and follow the plan.
Recently we added a feature that allows users to upload several documents at once, and during upload we ‘stick’ them together. It’s convenient: you can send the signer all the needed documents at once — contract and attachments. Hellosign also has such functionality. Plus, it allows us to save money on integration with Notarius. The service charges clients for every signed document, so combining the documents into one helps to save money on commission.
In theory, it sounds simple but in fact, it took us several months to implement this functionality.
- We needed to make serious architectural changes in the flow of the project and separate the document’s entity from the files, so that we could send one Signing Request for all files at once. It required tedious work on the code, to exclude even the smallest bugs during signing.
- Since Notarius makes money from every signed document, they might be against us combining several documents in one request. To convince the tech support of Notarius that this scheme is legal, we needed to communicate with them thoroughly and even make a video of the process.
For users with business subscription we added a feature that allows them to put their companies’ logos on documents. The last improvement for now is API with Zapier. With its help it’s possible to use our service without authorization. For example, users can set the service to automatically add their clients to CRM right after the document is signed. We wait for the first users of the integrations 🙂