Easol

Staff augmentation to extend the development team for an events e-commerce platform

Screen showing Easol website

At a glance

  • Tech Stack

  • Ruby on Rails
  • Stripe API
  • Liquid Templating
  • Heroku
  • Core Services

  • Development Team Extension
  • Additional Services

  • CTO consulting

THE BACKGROUND

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.

WHY US

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.

The work

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.

To improve performance we:

  • 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.

To save hosting costs, we recommended:

  • 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.

We also migrated some components to use Rails Turbo, which gives the performance boost and experience of a single-page application (SPA) without having to rewrite your entire frontend in a Javascript framework such as React.

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.

Permissions

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.

The impact

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.

Download our services guide & pricing

Find out more about Bit Zesty's services, including:

  • Our approach
  • Services we provide
  • Indicative pricing

Download guide

Do you need help with your application?

Unsure if we can help and do so within your budget? Keen to discuss our experience, processes and availability?

Get in touch with our client services team via phone, email or send us a message via the form.

Send us a message

  • This field is for validation purposes and should be left unchanged.