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