Learn Squared

Migrating an outdated e-learning platform from Drupal to Jamstack

About The Client

Learn Squared is an e-learning platform offering a wide range of art courses. It has helped over 20,000 students from around the world level up their artistic skills, and break into their desired industries.

The platform provides professional courses that equip individuals with the skills required to secure dream job positions in established companies.


Outgrowing Monolithic Drupal

Working with outdated technology can be frustrating and time-consuming due to compatibility issues, limited functionality, and the need for workarounds or manual interventions. What’s more, it’s not cost-efficient, considering how much time you have to spend rethinking the way to improve the platform. Paying for something, that’s not supported even by the provider, is just a waste of money. 

And that’s why Learn Squared was looking for a way to get rid of Drupal 7.

They faced many challenges arising from the monolithic Drupal platform they were using. The inflexible nature of the platform made it complicated and time-consuming to incorporate new features, delaying the project's ability to stay competitive and adapt to market demands. 

The outdated tech stack limited the platform’s potential for innovation and scalability. Learn Squared experienced significant issues with website performance, impacting the user experience. Moreover, Drupal 7 no longer receives updates and security patches from the provider, so the project was exposed to security risks and compatibility issues.

Another problem was a non-intuitive checkout process which influenced smooth and efficient purchases, leading to abandoned carts and lost revenue opportunities. 

Learn Squared was looking for a custom solution that will provide higher performance, improved user experience, enhanced flexibility for feature development, and an intuitive checkout process.


To address those challenges, our team proposed a comprehensive solution, offering a full-house service that included:

to run technical feasibility and choose the best and the most efficient tech stack, as well as the delivery scope

which included migration to a new platform and integration with a new e-commerce platform

to support the product after its release, continue working on new features, implement users' feedback and quickly respond to any problems or bugs

"To address the Learn Squared’s challenges we provide a holistic approach. After the Discovery Phase, we gained a total understanding of the project and were able to ensure a seamless development process from start to finish. By actively involving the team in the planning process, we ensured total familiarity with the challenges and objectives, eliminating communication friction.

Moreover, with our post-release support, Learn Squared can rely on a team that knows the product inside out and can quickly respond to any needs or issues, allowing for fast execution without the time-consuming onboarding of the new people into the project.”

Chris Lojniewski, CEO & CTO at Pagepro


The discovery phase played a crucial role in understanding the current website functionalities and identifying areas for improvement. It involved an in-depth investigation and analysis of the existing setup and an exploration of suitable solutions.

Technical Discovery for Learn Squared

Understanding the data structure in Drupal was quite challenging. Despite having a relational database, Drupal 7 doesn’t have built-in support for foreign keys in its database schema. 

Furthermore, the custom-built and customized Drupal system, developed over the years without proper technical documentation, added complexity to the migration process. As a result, analyzing data relationships based on content became necessary.

We run a special session with the project owner and the internal developer to understand the whole website structure. 

Following that, we were designing a new structure that would allow for data migration from Drupal, while also aligning with the capabilities of the new tech stack. We decided to migrate the platform from Drupal to Strapi and integrate it with Shopify (to provide full support for the e-commerce functionalities) and marketing tools, necessary to run proper advertising and analyse marketing activities.

Tech Stack for Learn Squared

To provide frictionless development, we choose a team of 5 to run the project: Full-stack Developer, 2 x Front-end Devs, Project Manager and a Tester. Our CTO was available for any technical consultation the customer required during the process.

Want to Migrate Your Website?

Tell us about your challenge, and let's get the ball rolling.

talk to our expert. IT'S FREE.

Tech stack

Next.js for UI / Front-end Development 

We chose Next.js for building the front end. It simplified the development process and ensured optimal performance for the website. As an e-learning platform, Learn Squared requires dynamic content generation and personalised user experiences. Next.js offers server-side rendering, allowing content to be rendered on the server and sent to the client as fully rendered HTML. This improves performance and ensures that content loads quickly, providing a seamless and interactive learning experience. 

Additionally, Next.js allows for quick and smooth integration with third-party tools, which are an integral part of e-learning platforms. In this project, among others, we integrated JWPlayer to properly display the content in each course. 

One of the customised sections we built was the dynamic form for homework. Here, the student can upload various types of files that are required to finish the courses. Just take a look at how user-friendly the form is right now: 

The initial plan was to migrate the whole platform exactly how it looked like in Drupal, but during the development, the customer decided to improve it a little bit. The customer provided us with all the designs, and by using Next.js we could implement it without any friction.

Hosting on Vercel 

The website is hosted on Vercel because it’s specifically designed for Next.js applications, offering seamless integration and optimal performance. Vercel's support for incremental static regeneration allows for efficient generation and delivery of static content, ensuring that the website loads quickly and provides an exceptional user experience even with resource-intensive media files. And this is particularly important for projects like this one, that involve high-quality images and videos.

Shopify as a Headless CMS

For the e-commerce functionality, our team recommended Shopify. The customer mentioned it during our first meeting because it boasts a vast collection of plugins and add-ons that enhance the functionality of an e-learning platform. These plugins enable integration with the learning management systems, and video hosting platforms, providing flexibility and customization options.

What’s more, Shopify provides a robust Storefront API, allowing developers to create tailored front-end experiences for e-learning platforms. This flexibility enables seamless integration with existing branding guidelines, design elements, and user experience considerations, providing a consistent and cohesive learning environment for students.

“Many customers are convinced that using Shopify means keeping the whole shop on one platform and building it exactly the way others do. And that’s not true. You can deliver the whole buying experience on your website and redirect the customer to Shopify only for payment. This way you can build the user interface however you like, using the tools you want. That’s a great way to stand out from the crowd of looking-alike online shops or, like here - e-learning platforms.”

Adrian Dudko, Project Manager at Pagepro

And that’s the way we did it for Learn Squared - we’ve connected Shopify through API and built the whole buying process on their website, so the customer is redirected to Shopify only for the payment. Thanks to this we could make a unique frontend, accordingly to the customer’s designs. 

Learn Squared had two more requirements from Shopify - to provide a clear refunding process and detailed reporting, which was crucial for determining payroll for their partners. To guarantee that, we opted for the second pricing plan, which provided enhanced reporting capabilities while maintaining cost efficiency.

Strapi for backend and content management

In addition to Shopify, we utilised Strapi as the chosen headless CMS. While the initial plan involved using Sanity, we found that Strapi better suited the project's needs. Strapi not only provided an admin panel for easy content management but also offered a comprehensive API framework for integrating custom logic and creating a flexible and scalable architecture.

To align the CMS with the unique customer requirements, we customized it and add features like:

  • Automated Course Access Based on Shopify Purchases/Refunds

To streamline the user journey, we integrated Strapi with Shopify, allowing for automatic granting and revoking of course access based on purchase or refund transactions. This automated process ensures that users gain immediate access to their courses and are promptly removed from the course upon refund, providing a seamless and efficient learning experience.

  • Mailchimp Integration for Automated Contact Data Updates

This integration enables automatic updates of contact information based on user actions on the website, such as editing basic details or capturing information about recent purchases. By synchronizing data between Strapi and Mailchimp, our customer can effortlessly maintain accurate and up-to-date contact records, enabling targeted and relevant email marketing campaigns.

  • Discord Bot Integration for Exclusive Course Discussions

Users who purchased a course are automatically granted access to a private Discord channel dedicated to course discussions. This integration fostered a sense of community, allowing participants to interact, share insights, and collaborate with fellow learners, enhancing the overall learning experience.

  • External Partner Program Integration

We integrated the Learn Squared platform with Kitbash3D's system. As a result, users who made purchases gained access to exclusive discount codes, broadening the range of resources available to them.

Even though the project was very complex, we followed a fixed-price approach, to ensure transparency and cost control for the customer.

To accommodate specific requirements and additional requests, we agreed to handle "out of scope" work on demand, allowing for flexibility and customization as needed.

AWS for Strapi Hosting 

We decided to use AWS mostly because it enhanced the performance and scalability of the Node.js app, which Strapi is. 

After the load tests, we realize that the initial efficiency of the platform can be not enough for the higher user engagement, which happens on e-learning platforms in the US, especially on days like Black Friday. The tests help us choose the best hosting parameters, and optimize the quality and costs. 

By implementing containerization, our developers created a consistent and isolated environment, simplifying setup and configuration processes, and enabling faster deployment cycles. This allowed us to deliver efficient and scalable application development, ensuring an enhanced experience for our customers. 

Additionally, the execution of a well-structured CI/CD pipeline ensured a seamless deployment of updates, further optimizing the delivery of new features and improvements.

Jamstack Development

The development process was divided into 13 2-week sprints, with a demo held each week to showcase the progress. Also, we send daily updates to keep the customer on track.

  • APP1 Kick Off

    Sprint 1

  • Static Components

    Sprint 2

  • APP3 Kick Off & Data Models

    Sprint 3

  • APP3 Data Migration

    Sprint 4

  • CMS Pages

    Sprint 5

  • Courses

    Sprint 6

  • Authorization & Integrations

    Sprint 7

  • Sprint 8

    Shopify Integration Start

  • Sprint 9


  • Sprint 10

    Authors & Reporting

  • Sprint 11

    Last Data Migration, Integrations

  • Sprint 12

    Last Data Migration, Integrations

  • Sprint 13


  • APP1 Kick Off

    Sprint 1

    SPRINT 1

    • APP1: Project boilerplate (NextJS, TypeScript, Storybook)

    • Repository, Vercel test version and CI/CD implemented

    • Static components library with Storybook Part I

  • Static Components

    Sprint 2

    SPRINT 2

    • Static components library with Storybook Part II

    • Drupal Backoffice investigation, plan for data export

  • APP3 Kick Off & Data Models

    Sprint 3

    SPRINT 3

    • APP3: Project boilerplate (Strapi)

    • Repositories, AWS Configuration

    • APP3: Preparing API data models

    • Static components library with Storybook Part III

  • APP3 Data Migration

    Sprint 4

    SPRINT 4

    • APP3: Preparing scripts for data migration (Drupal -> Strapi)

    • APP3: Users

    • Static components library with Storybook Part IV

  • CMS Pages

    Sprint 5

    SPRINT 5

    • APP3: CMS Pages / Landing Pages

    • APP1: CMS Pages / Landing Pages

    • APP3: Lessons

    • APP3: Courses

  • Courses

    Sprint 6

    SPRINT 6

    • APP1: Courses List & Course Details

    • APP1: Lesson Experience

    • APP3: Orders & Invoices

  • Authorization & Integrations

    Sprint 7

    SPRINT 7

    • APP1: Authorization & User Accounts

    • APP3: Integrations (JWPlayer, MAIL)

  • Shopify Integration Start

    Sprint 8

    SPRINT 8

    • APP1: After Login Functionalities

    • APP2: Shopify Configuration & Data Migration

  • Courses

    Sprint 9

    SPRINT 9

    • APP3: Licences

    • Speed & SEO Optimisation

    • APP1: eCommerce Functionalities

  • Authors & Reporting

    Sprint 10

    SPRINT 10

    • APP1: Authors & Reporting

    • APP1: eCommerce Functionalities

  • Last Data Migration, Integrations

    Sprint 11

    SPRINT 11

    • Custom URL Redirects

    • Enterprise Plans and Affiliate Access

    • Advanced Coupons Support

  • Last Data Migration, Integrations

    Sprint 12

    SPRINT 12

    • APP3: Email notifications

    • Another Data Migration

    • APP1: Integrations (Newsletter, GTM, GA)

  • Release

    Sprint 13

    SPRINT 13

    • Setting Up Servers & Deployments (PROD)

    • Image crop / Focal Point

    • PDF Invoices

    • Analytics Tools Update (GA)

    • Production Release


Data migration from the existing website was, as always, a critical aspect of the project, ensuring everything remained up-to-date. This process required synchronisation with the client and considering varying time zones. In fact, the time difference resulted in a shorter website shutdown - when we were migrating the data from Poland, in the US was night, and the traffic on the website was minor.

Together with the client we chose the date for the content freeze when he couldn’t change anything in the content. Then we could migrate the courses and pages exactly how they were on the previous website and give the customer time to check out if it is as it should.

By the release day, we didn’t migrate any user-related data, because it changes constantly - the users are taking lessons, subscribing to new courses etc. So only on the launch day, once the website was set into read-only mode, and the users had restricted options in managing their accounts, we migrated the customers related data from Drupal to Strapi. 

Thanks to the effort of the whole team, active collaboration with the customer and a defined plan for release, the launch process took us no longer than 4 hours so the platform was back for users quickly. 


The project benefits from the migration from the outdated Drupal platform to Jamstack in many ways:

Website Performance: Our customer admits, that the website performance is the single largest improvement since the new platform launch. He says: "The site is incredibly fast and responsive now, and makes navigating the platform much more satisfying."

Superior User Experience & Conversion Rates: The improved website performance delivers a seamless and satisfying user experience. Faster loading times, heightened website performance, and an intuitive interface provide users with an enriched and dynamic learning experience. This has resulted in a notable 4% decrease in the bounce rate and a 24.35% increase in revenue within the first 26 days since launch. (It's important to consider that additional factors like recent sales and new course launches may have also influenced this metric.)

Unrivalled Flexibility & Speedy Development: Our migration from the outdated Drupal platform to a modern Jamstack solution provided unrivalled flexibility, enabling seamless integration of new features and facilitating the platform's rapid evolution in response to changing market demands. This adaptability significantly decreased development time, facilitating faster iterations and expedited delivery of enhancements. Our customer admits that: "I don't really have a number of hours to represent that increase, but as the one who oversees operations of development, I can confirm the turnaround time from ideation to feature launch has been a marked improvement upon our previous development solution."

Guaranteed Compatibility & Higher Security: The migration ensures full compatibility, strengthened security, safeguarding and establishing a robust and future-proof infrastructure. This guarantees a reliable and safe learning environment for the users. Additionally, the reduced maintenance enables our customers to allocate resources more efficiently.

Top-Tier Technologies & Enhanced Security: The choice of cutting-edge technologies — each backed by established providers, vast communities, and a commitment to continuous improvement has significantly enhanced the platform's capabilities. It provides peace of mind for both the users and administrators. The valuable data remains protected, while the platform benefits from regular updates and continuous improvement.

  • testimonials
  • testimonials
  • testimonials
  • testimonials
  • testimonials
  • testimonials
  • testimonials
  • testimonials
  • testimonials

We've absolutely seen an increase in development velocity with the Pagepro team, through initial development and even into the initial weeks of our first SLA. I don't really have a number of hours to represent that increase, but as the one who oversees operations of development, I can confirm the turnaround time from ideation to feature launch has been a marked improvement upon our previous development solution.

  • Andrew HawrylukCo-founder, Learn Squared


  • the form
  • the form
  • the form
  • the form
  • the form
  • the form
  • the form
  • the form
  • the form

Want to Migrate your Website to Jamstack?

Tell us about your challenge and get help with your next moves in 24 hours.

Book a Meeting With Our Expert

If something seems unclear, it's always good to talk to an expert. And it's free!

Book a call with our Client Partner and get all the answers you need.

Paulina Wyrzykowska

Client Partner
[email protected]