At a glance
- Ruby on Rails
- Stripe API
- Liquid Templating
- Development Team Extension
- CTO consulting
The return of the tourism industry to its pre-pandemic status benefited Easol, a YC-backed startup that helps companies run their events and experiences. After raising a $25 million Series A, Easol had an ambitious roadmap to improve its e-commerce platform, which includes a website builder, reservation and booking tools, and payments to become a complete solution for the events industry.
Easol was growing its development team rapidly. However, the team was still at full capacity to reach its growth target KPIs and needed more developers. Having talked to several agencies, Easol partnered with Bit Zesty because we were willing to work closely with the existing development team; we cared about code quality, performance and maintainability.
Easol is a bespoke e-commerce platform built on Ruby on Rails, and Bit Zesty is one of the leading Ruby on Rails agencies.
Our ability to provide consulting CTO services to improve the performance and scalability of the web application was also a factor in working with us.
We worked closely with the EASOL development team, joining their daily standups, sharing progress regularly and collaborating on slack in a shared channel.
Performance and hosting review
We did a deep dive into the application performance and hosting to improve the response time and help reduce the hosting costs.
- Enabled jemalloc to improve memory use.
- Increased the cache (Memcache) to improve hit rates.
- Refactored liquid templates and fixed N+1 issues, which sometimes reduced the render time by half.
- Recommended compressing images and serving Webp format.
- Recommended switching to liquid_c for the liquid template compilation.
- Changed ImageMagick to Vips to speed up image resizing and use fewer resources.
- Recommended upgrading to the latest Heroku stack.
- Recommended using the View Component library to speed up views.
- Changing from Heroku’s default autoscaling (based on memory and CPU) to autoscaling based on traffic.
- Enabling auto idle on staging environments.
- Recommended moving some services off Heroku where there are cheaper alternatives such as Fly.io or using Amazon AWS.
Refactoring email templates
We started working together on a small project to migrate their Mandrill email templates into the Ruby on Rails application. The team was finding it difficult to maintain emails in two places, testing was challenging, and they wanted to give their customers more flexibility. By moving their emails into the Rails app, the team had full control of them.
Ruby on Rails upgrades
The EASOL application was running on Rails 6.0. We upgraded to 6.1 as that introduced image variant caching, allowing images to be served more efficiently. Using the Bit Zesty team for the upgrade, their development team focused on delivering other critical features for their roadmap.
Improving the consistency of the UX/UI
As the EASOL platform developed rapidly, there were some UX inconsistencies, which we helped to highlight and correct.
Using CubeCSS, we also created reusable components to be reused in other parts of the application easily to keep a consistent look and feel.
Multi-factor Authentication (MFA) via one-time password (OTP)
To meet security compliance requirements, EASOL needed to implement multi-factor (previously known as two-factor) authentication; we added this using one-time passwords (OTP) and generated a QR code for users to scan.
Easol had a basic permissions model, and to better serve the needs of larger accounts, they needed to introduce a complex roles and permissions system. This allowed their clients to give access to specific parts of the application by controlling which roles users had.
We also improved the onboarding experience for new users when invited to the platform.
Migrating client website templates
Many early EASOL clients had a custom website built that didn't take advantage of the full templating system within EASOL, and we helped to migrate their client websites into the platform templates. This allowed the clients to add/edit content without raising support requests.
Our team augmentation/team extension service allowed the EASOL development team to rapidly expand their developer capacity to deliver and meet its ambitious roadmap goals.
We worked closely with their existing team, following their development practices, collaborating on slack and doing periodic show-and-tells to help transfer knowledge and build trust.
Our flexibility meant we could scale our team up and down rapidly as their development needs changed, ultimately saving costs as they were not paying for developers being idle between projects.
The outcomes of our work improved the platform's performance and stability, added features and helped reduce the number of support requests. The performance gains were impressive; for some customers, their site loaded in half the time.
EASOL were also in the middle of hiring a new CTO, and our CTO consulting services meant we could give advice and support to their development team in the interim.