Case Study

MayQR
Modernized.

A complete platform overhaul — from monolithic WordPress to headless architecture with Next.js, Cloudflare, and a custom REST API.

mayqr.com
mayqr.com/dashboard

Total Scans

5,703

Active QRs

3,738

Users

115

The Challenge

A platform outgrowing
its foundation

MayQR had thousands of monthly users generating and managing QR codes, but the WordPress monolith was buckling under technical debt. The platform needed a ground-up modernization to scale and stay secure.

Stale Codebase

Not updated in over a year. 8,600+ line PHP files with no modularization or documentation.

Security Gaps

Hardcoded credentials scattered across multiple files. No environment-based configuration.

No Test Coverage

Zero automated tests. No CI/CD pipeline. Manual deployment via FTP with no rollback strategy.

Dated Interface

Legacy WordPress UI that didn't reflect the product's capabilities. Poor mobile experience.

The Solution

Full-stack modernization,
zero downtime

We decoupled the frontend from WordPress, built a purpose-built API layer, and deployed to the edge — all while keeping the live platform running for existing users.

Headless Frontend

Migrated from monolithic WordPress to a new Next.js 16 frontend with React 19, Tailwind CSS 4, and Motion animations. Server components for performance, client interactivity where it matters.

Custom REST API

Built mayqr-core, a custom WordPress plugin exposing 17 REST API endpoints. Same backend powers both the web dashboard and the iOS app.

Edge Infrastructure

Deployed the Next.js frontend to Cloudflare Pages with a Cloudflare Worker handling QR scan redirects at the edge for sub-50ms response times.

Automated Testing

Created a Python REST API test suite validating all 17 endpoints plus Playwright browser tests for critical user flows.

Security Hardening

Extracted every hardcoded credential into wp-config.php constants. Environment-based configuration across 3 WP Engine environments.

Repository Cleanup

Removed 140MB of junk files, unused dependencies, and dead code. Reorganized project structure with proper .gitignore rules.

Architecture

Users
Web DashboardiOS AppQR Scanners
Edge
Cloudflare PagesCF Worker (redirects)
Frontend
Next.js 16 + React 19Tailwind CSS 4 + Motion
API
mayqr-core (17 endpoints)WordPress REST
Data
MySQL (WP Engine)AWS S3 (assets)
Tech Stack

Built with modern tools

Backend

WordPressPHPMySQLAWS S3WP Engine

Frontend

Next.js 16React 19TypeScriptTailwind CSS 4Motion

Infrastructure

Cloudflare PagesCloudflare WorkersWP Engine (3 envs)

Testing

PythonPlaywright
Transformation

Before & After

Drag the slider to compare the original WordPress site with the modernized Next.js frontend

Before
After
Before
After

Homepage comparison

New Dashboard
New MayQR dashboard
ArtQR Gallery
New ArtQR gallery
Results

By the numbers

0MB

Junk Removed

Dead files & unused deps cleaned

0

REST API Endpoints

Serving web + iOS clients

0K

Monthly Requests

Across the platform

0

QR Codes Managed

Across 4 subscription tiers

0+

Scans Tracked

With analytics & location data

0

Registered Users

Zero-downtime transition

Ready for your modernization?

Whether it's a legacy platform overhaul or a greenfield build, we ship production-grade systems that scale.