
Contractify
Collaborate, Sign, Manage. Contract management simplified.
Two founders wonder how they can make their product ready for the future. Having bootstrapped Contractify with a focus on producing something that works and solves the client's contract management challenges, attention was needed on product scalability. We are now ready for 10,000 or 100,000 users.
Overview
Two founders wonder how they can make their product ready for the future. Having bootstrapped Contractify with a focus on producing something that works and solves the client's contract management challenges, attention was needed on product scalability. We are now ready for 10,000 or 100,000 users.
And instead of one developer creating the product, the system needed to be ready for a whole team of developers to begin working on it. This is why Contractify reached out to madewithlove for help.
A Technical Audit
We started with a technical audit to determine exactly what was going wrong. Our team discovered a codebase full of complex relationships that were tightly woven together.
There were fat controllers trying to do too many things, no abstraction between the front-end and backend, codebases missing abstractions entirely, and performance issues starting to creep up. It didn't help that all development work was resting on the shoulders of a single developer at that point.
Before diving in head first, our CTO in residence focused on organization and documentation: a technical roadmap was created to map the technical debt and problems uncovered in the technical audit. Items were added to address areas of the platform that were affecting stability and performance in addition to tasks that would improve development processes such as introducing a containerized local environment, setting up the CI/CD pipeline, and upgrading PHP and Laravel. For each item, a plan of action was created and documented together with the developers.
Along with that, the priorities were organized into a now-next-later product roadmap. The founders and our CTO in residence fleshed out new features together using feature passports and by writing product documentation upfront. The technical and product roadmaps were then joined together in one overarching roadmap and prioritized according to impact and effort.

Developers Join Forces
Madewithlove's developers had joined forces with Contractify's developer and got right to work, focusing on the maturity and stability of the platform.
Within the first two months the number of bugs dropped dramatically and the critical paths were rebuilt in a stable and performant way. Opportunistic refactoring (aka the boy scout rule) and leveraging error tracking software were two key factors in the approach.
To ship this code, we set up a first-tier continuous integration and continuous development pipeline (CI/CD) featuring the necessary checks and balances to increase code quality: static code analysis (phpstan), automatic code styling and formatting (PHP CS Fixer, Prettier, ESLint), and testing (PHPUnit, Cypress end-to-end tests).
Another big piece of the reliability and scalability puzzle was the need for a mature infrastructure. When we arrived, the setup was simple: one single server. Now Contractify is running on DigitalOcean droplets with a managed database, Redis queue, automated backups, and user generated content hosted on a cloud based file store. Once architected, it took less than a month to finish the complete migration for multiple environments.
Of course there was also a lot of product work to be done: implementing new features such as new contract flows and a redesign, refactoring older features like e-signing and tasks, and rebuilding some features from scratch including a new back-office using Laravel Nova.

How It Ended
After our long journey (18 months!), it was time for madewithlove to say goodbye. And we've done that carefully, ensuring that the team has a solid base for the coming years.
Documentation plays a key role in this: we never stopped challenging the need to write documentation (product, features, architecture, infrastructure, and processes). This documentation is even more important for growing teams as is the case at Contractify. A new product manager has joined and we helped to recruit a new CTO/lead developer. We stayed just a bit longer to make sure their onboarding went smoothly.
Madewithlove is proud to leave this team after a very pleasant and fruitful collaboration, knowing they can stand on their own from here on out.
What they said
“Madewithlove was the only party advising us to refactor instead of starting over. With hindsight, this was the right choice. Our customers started feeling the difference right away and didn't have to wait 9 months or longer for improvements.”
Steven Debrauwere
CEO Contractify
“Our internal team of developers matured a lot during the time we worked with madewithlove. Their focus on knowledge-sharing is going to help us even when madewithlove is no longer on board.”
Steven Debrauwere
CEO Contractify
“If we compare the speed with which new development projects can be tackled now with 18 months ago, the difference is astounding.”
Steven Debrauwere
CEO Contractify
“The fact that they can leave is proof that the project was a success.”
Steven Debrauwere
CEO Contractify
Ready to become our next success story?
Tell us about your project and we'll get back to you.



