Platform Modernization & Kubernetes Migration

Photography / Social Media

K8s

Infrastructure on GCP

PWA

Cross-platform mobile solution

React

Modern frontend stack

Overview

Shuttout was facing multiple technical challenges: an aging Angular.js frontend, requests for native mobile apps on a limited budget, and infrastructure that couldn't scale. I led the modernization across the stack.

Business Context

Shuttout is a photography contest platform that connects brands with photographers. The startup had grown from a side project to a platform with thousands of active users, but its technical foundation was showing cracks. The Angular.js frontend was increasingly difficult to maintain as developers with Angular.js expertise became rare. Users wanted mobile apps, but the budget couldn't support native iOS and Android development. The single VPS server struggled during contest launches.

Challenge

Legacy Angular.js frontend, single VPS hosting, and requests for native mobile apps. Limited budget required creative solutions.

  • Legacy Angular.js frontend difficult to maintain
  • Requests for iOS and Android apps without budget for native development
  • Single VPS hosting unable to handle traffic spikes

Solution

We modernized the entire stack: React for the frontend, PWA for mobile, and Kubernetes on GCP for scalable infrastructure.

  • Migrated frontend from Angular.js to React
  • Built Progressive Web App instead of native mobile apps
  • Migrated from VPS to Kubernetes on GCP

Approach & Methodology

We took a pragmatic approach, addressing the most painful issues first. We evaluated PWA vs native apps and determined that PWA could deliver 90% of the mobile experience at 20% of the cost. For the frontend, we migrated incrementally - new features in React, existing features migrated as they needed updates. For infrastructure, we containerized the application first, then migrated to Kubernetes once the team was comfortable with containers.

Implementation Details

React & PWA Migration

Rebuilt the frontend in React with Progressive Web App capabilities, providing native-like experience on mobile devices without the cost of separate iOS and Android apps.

Kubernetes Infrastructure

Migrated from single VPS to Kubernetes on GCP, enabling auto-scaling, zero-downtime deployments, and significant cost savings through efficient resource utilization.

Key Decisions

  • Chose PWA over React Native because the app was primarily content consumption with minimal device API needs
  • Migrated to GCP Kubernetes instead of AWS EKS due to better pricing for our scale and simpler managed Kubernetes experience
  • Used incremental React migration with micro-frontends pattern rather than big-bang rewrite

Tech Stack

React Node.js PHP GCP Kubernetes PWA

Related Services

The following services were utilized in this project to deliver successful outcomes.

Lessons Learned

  • PWA is underrated - our PWA achieved 85% engagement of native apps at a fraction of the development and maintenance cost
  • Containerization should happen before Kubernetes migration - trying to do both at once is recipe for confusion
  • GCP Kubernetes Autopilot mode significantly reduced operational overhead for a small team

Project Information

Timeline

8 months total (phased approach)

Team

2 developers + 1 designer

Results

K8s

Infrastructure on GCP

PWA

Cross-platform mobile solution

React

Modern frontend stack

Have a Similar Challenge?

Let's discuss how I can help your project succeed with proven architecture and AI solutions.