Home
Projects
Products
Blog
About
Back to projects
Tower War

Tower War

Not just a game — a challenge. Built entirely in TypeScript and React, with no game engine and no prior game dev experience. Powered by the Canvas API and Zustand, with a project structure designed for scalability from day one.

The React trade-off

React was the one decision I'd revisit. I only needed it for syncing game state to the DOM — things like coins, enemy counts, and health bars. But bringing in a full component model meant fighting unnecessary re-renders throughout development, which cost real time.

What I took away

Despite that, this project taught me more than most. Structuring a non-trivial app from scratch, shipping a PWA with offline support, and leaning into OOP patterns all came together here.

Key learnings

🏗️App architecture & scalability
📦Offline support via PWA
🖼️Canvas API & image caching
🐻Zustand state management
🔷Object-oriented programming

Osama Mohammed

Building things for the web, Sorry EVERYTHING.

Pages

  • Home
  • Projects
  • Products
  • Blog
  • About

Social

© 2026 Osama Mohammed. All rights reserved.mail.osmhmd@gmail.com