Back to selected work

Tappshare case study

Modernizing a campaign SaaS frontend without stopping product delivery

Tappshare helped businesses launch and track shareable marketing campaigns distributed through WhatsApp, turning word-of-mouth marketing into a measurable product workflow. My role as Frontend Lead focused on making the platform easier to scale, safer to change, and more reliable to evolve.

Tappshare campaign dashboard preview
Role
Frontend Lead
Period
Feb 2022 - Aug 2023
Focus
Frontend modernization
Stack
REACTJS/MUI/REDUX/I18N

A campaign platform built around measurable referral reach

The product let businesses and their employees create campaigns, distribute them through WhatsApp, and monitor engagement and performance through a centralized dashboard. The challenge was not only shipping features, but making the frontend sustainable enough to keep supporting product growth.

Frontend velocity was being constrained by technical debt

  • A large untyped JavaScript codebase made changes harder to reason about.
  • The frontend had no automated tests, so regressions were easier to introduce.
  • Tightly coupled components increased the cost of even routine product changes.
  • As the platform evolved, maintenance and feature delivery were becoming slower and riskier.

Improve the codebase incrementally while the team kept shipping

  • Drove a gradual modernization effort instead of attempting a risky full rewrite.
  • Progressively converted JavaScript files to TypeScript during active feature work.
  • Introduced automated tests alongside refactored modules to improve safety.
  • Split large components into smaller reusable pieces to reduce coupling.

Structural changes that raised the frontend baseline

  • Worked as Frontend Lead on the platform architecture and delivery flow.
  • Introduced incremental TypeScript adoption across the frontend codebase.
  • Improved maintainability of large frontend modules through targeted refactors.
  • Added testing practices to previously untested areas of the product.
  • Refactored oversized components into more reusable systems.
  • Helped establish a more scalable frontend foundation for future growth.

A safer, more maintainable frontend foundation for ongoing product work

  • The frontend became easier to maintain and safer to extend as the product evolved.
  • TypeScript and testing improved developer confidence during feature development.
  • The product gained a more structured architecture that could support continued growth.