growthGrid

Platform modernization

A 2022 PHP learning portal, moved to Next.js and a typed API one module at a time — old and new side by side, with no big-bang cutover.

Legacy PHP → Module by module → No big-bang cutover

Live snapshot
Client
Concept build
India
Industry
Education
Year
2026
Timeline
6 weeks
New LMS institute dashboard with today’s timetable, student numbers and a module migration tracker

Results

Separate dashboards merged into one app
3 → 1
Modules moved one at a time
5
Big-bang cutovers
0

[01]The challenge

Our 2022 learning portal — institute, faculty and student dashboards in plain PHP — still did its job, but every change risked breaking another page. SQL lived inside the templates, sessions handled sign-in, and each dashboard was effectively its own app.

A full rewrite would have frozen the product for months. The goal was a modern platform without ever switching everything over in one night.

[02]Our approach

  1. 01

    We listed every PHP page with the module it belongs to and the data it touches, then put a typed API in front of the existing database so old and new screens read the same records.

  2. 02

    Modules move one at a time, smallest risk first: sign-in, then students, timetables, study material and queries. A routing layer sends each path to the old app or the new one.

  3. 03

    Every move ships behind a switch that can send traffic back to the PHP page in seconds.

[03]The solution

The new platform is one Next.js app with role-based views for the institute, faculty and students, backed by a typed Node.js API and deployed in containers alongside the legacy app.

Timetables update without a reload, study material is served from object storage through signed links, and student queries move out of email and into the app.

[04]What we built

  • 01Page-by-page inventory of the legacy app
  • 02Typed API in front of the existing database
  • 03Routing layer that sends each path to old or new
  • 04One app with institute, faculty and student views
  • 05Instant rollback switch for every module

[05]Live snapshot

An interactive recreation of the product’s core flow — try it.

lms · migration

01Sign-inwk 1

Sign-in moves first

PHP sessions give way to token sign-in that both apps trust, so people log in once, whichever app serves the page.

Legacy
Session
New
JWT
API routes
3

Interactive · pick a module

[06]Stack

  • Next.js
  • TypeScript
  • Node.js
  • REST APIs
  • Docker

Your project next?

Tell us about the problem you’re facing. We’ll show you how we’d approach it — and what success could look like.

Booking new projects for Q4 2026

We reply to every enquiry within one business day.