Why We Built a PWA Instead of a Native App for Tropical Gardens Hotel
Tropical Gardens Hotel is a 25-room hotel in Kyenjojo, western Uganda. When they approached us, they needed a digital presence — online booking, room management, and a way to compete with larger hotels on Google. The question was: native app or web app? We chose a Progressive Web App. Here's why, and what we learned.
The Context
Most of Tropical Gardens' guests are domestic travelers, NGO workers, and tourists visiting western Uganda. They discover the hotel through Google searches like "hotels in Kyenjojo" or through Booking.com. The hotel's main competitors — Tooro Royal Cottages and Panorama Kyenjojo — had basic websites or Facebook pages but no custom booking system.
The hotel needed: a fast, mobile-friendly website that ranks on Google, a booking system that doesn't depend on OTA commissions, room management for 4 room categories (Standard, Deluxe, Executive, Family Suite), and integration with mobile money for deposits.
Why Not a Native App?
A native Android app would have cost 2-3x more to build and maintain. More importantly, the discovery problem remains: a hotel guest from Kampala searching "hotels in Kyenjojo" on Google will never find a native app. They'll find a website. Google indexes websites; it doesn't index apps (unless they're already installed). For a hotel, the primary acquisition channel is search — and search lives on the web.
Additionally, app store distribution adds friction. A guest planning a last-minute stopover in Kyenjojo won't download an app. They'll tap a link from Google and expect to book in under 60 seconds. A PWA loads instantly in the browser, works on any device, and can be "installed" to the home screen if the user chooses — without app store approval.
What We Built
The Tropical Gardens Hotel PWA includes:
- Custom booking engine — room selection, date availability, and booking confirmation without third-party commission
- Node/Express backend — PostgreSQL database for room inventory, bookings, and guest records
- Admin dashboard — JWT-authenticated management interface for room availability, pricing, and booking management
- PWA installation — guests can add the hotel to their home screen for one-tap access on return visits
- Offline-capable — service workers cache the shell so the site loads even with poor connectivity in rural areas
- PesaPal integration — mobile money deposits for booking confirmations
- Verified Google reviews — integrated real 5-star Google reviews for social proof and local SEO
Technical Architecture
The frontend is a static site served via GitHub Pages with a Node/Express backend hosted separately. The backend handles booking logic, payment processing, and the admin API. The admin dashboard uses JWT authentication to restrict access to authorized staff.
For SEO, every room category page has structured data (JSON-LD schema markup) including room types, pricing, and availability. This helps Google understand the content and display rich snippets in search results — giving Tropical Gardens a visible advantage over competitors who only have a Facebook page.
The Result
The PWA is live on two domains (tropicalgardenshotel.com and tropicalgardenshotelkyenjojo.com). It handles real bookings, manages 25 rooms across 4 categories, and the admin dashboard lets hotel staff manage availability in real time. The hotel now appears in Google search results for "hotels in Kyenjojo" — competing directly with hotels that have been online for years.
The maintenance cost is low: static hosting is free, the backend runs on a small server, and updates deploy automatically from GitHub. Total monthly cost including domains and backend hosting is under UGX 812,000.
When You Should Choose Native Instead
A PWA isn't always the right choice. We'd recommend native if: you need deep device integration (Bluetooth, NFC, background location), you're building a gaming app, or your users access the app frequently and benefit from native notifications and offline data. For a hotel booking system where the primary goal is Google discoverability and fast booking, a PWA was the right call.
Need help with your project?
DeryCode builds enterprise software, AI systems, blockchain infrastructure, and digital platforms.
Start a Conversation →Related reading
- From Paper to Digital: Building a Multi-Vendor Agricultural Marketplace — Engineering · Case Study