Project handover

Aaujar

Canopy Guest App

Prepared for The Canopy Treehouses · Handover date 2026-08-08

01

Project overview

The Canopy Guest App is a native mobile app for guests staying at The Canopy Treehouses, delivered on both iOS (App Store) and Android (Google Play). Every screen and every image can be edited by the resort team through a browser-based admin CMS. No developer involvement is required for day-to-day content changes.

What guests can do:

  • Read practical information for their stay (WiFi, check-in and check-out, contact details).
  • Browse the wildlife guide with photos, videos, and spotting tips for the animals on the property.
  • See the map of the property and the surrounding villages.
  • Find local places to eat and drink, and activities in the Atherton Tablelands.
  • Read updates from the resort team on a message board.
  • Submit feedback on their stay and message the resort team directly.

Training videos

Two short screen-recordings walk through the app end to end. Both are narrated by Girish and are the primary reference for using the app and the admin.

Guest app walkthrough — every screen a guest will see, in the order they see it. Useful for training new front-of-house staff.
Link to be provided.

Admin CMS walkthrough — how to log in, edit content, respond to guest submissions, and send a message board update. Useful for anyone on your team who will maintain the app.
Link to be provided.

02

Accounts you own

These are the accounts under your name that keep the app running and let you manage it. Passwords should live in your own password manager. This document only records where each account sits and what it does.

Google Play Console
play.google.com/console
Publisher account for the Android app.

Apple Developer Program
developer.apple.com/account
Publisher account for the iOS app. Also used to sign in to App Store Connect at appstoreconnect.apple.com.

Privacy policy page
canopytreehouses.com.au/privacy-policy-2
The privacy policy shown on the Play Store and App Store listings, hosted on your existing website. Both stores require a valid privacy policy URL for approval.

Email inbox
stay@canopytreehouses.com.au
Receives every feedback, message board and maintenance submission from the app. Delivered from the Canopy Guest App via Resend.

Admin CMS
canopy-admin.pages.dev
Web dashboard for editing every screen of the app. Access is gated by Cloudflare Access — sign in with a Google account that has been whitelisted. Currently David Clarke and Girish Rathor are on the whitelist. Adding or removing team members is a small change on my end, just email me.

03

Services running the app

The app is made of several small services stitched together. Some run under your account, some under mine. This section lists each one so you know what is where.

Cloudflare (Aaujar’s account, free plan)
Hosts the API server (Worker), the media library (R2 storage), the database (D1), the admin website (Pages), and the sign-in gate (Access). All in the Oceania region for low latency to Australian guests.
Currently on the free plan.

Google Play Console (your account)
Publishes the Android app.

Apple Developer Program (your account)
Publishes the iOS app.

Expo Application Services (Aaujar’s account)
Builds the iOS and Android apps in the cloud whenever a new version is needed.

Resend (Aaujar’s account)
Sends the email notifications to stay@canopytreehouses.com.au every time a guest submits feedback, a message, or a maintenance request.

Push notifications (Android and iOS)
When you post a new update to the message board, guests who opted in receive a push notification. On Android this goes through Firebase Cloud Messaging (Aaujar’s account). On iPhone this goes through Apple’s push service (APNs) using a key generated under your Apple Developer Program account.

04

Source code and assets

Everything that makes up the app lives in a single Git repository, so if you ever need to bring in another developer they can pick up from a single starting point.

Git repository
github.com/girish-rathor/canopy-app
Private repository. Read access can be granted to any GitHub account on request.

What’s inside the repository:

  • apps/guest-app/ — the iPhone and Android app itself (React Native via Expo).
  • apps/admin-web/ — the browser-based admin CMS.
  • workers/ — the API server (Cloudflare Worker), the database schema (D1 migrations), and the storage code.
  • apps/feedback-web/ — a small standalone web version of the Feedback form for guests who prefer not to install the app.

Where images and videos live:

Every photo and video shown in the app is uploaded through the admin CMS and stored on Cloudflare R2 under Aaujar’s account. Nothing is bundled into the app itself, which is why editing content never requires a new app release.

Brand assets:

Logo, hummingbird icon (used as the app icon and favicon), and colour palette are stored in the repository under apps/guest-app/assets/images/. Higher-resolution and working versions of these files are kept in the Aaujar project folder.

05

Data and backups

Every guest submission (feedback, message board post, maintenance request) is stored in a database in Sydney, along with the wildlife entries, activities, restaurants, and everything else that the admin CMS lets you edit.

Where the data lives
Cloudflare D1 database, hosted in the Oceania region (Sydney). Media files (photos and videos) are stored separately in Cloudflare R2, also in Aaujar’s account.

How to back it up
In the admin CMS, the “Backup” page has a “Download backup (.json)” button. This downloads a single JSON file containing every editable record — content cards, wildlife entries, activities, restaurants, maps, message board posts, and guest submissions.

This file is intended as a monthly or quarterly snapshot for your own records. It can be sent to another developer if the app ever needs to be rebuilt from scratch.

Cloudflare’s own backups
Cloudflare maintains its own redundancy across data centres. The download-backup button is a belt-and-braces snapshot on top of that.

What is not in the backup file:

  • Media files (photos and videos). These are large and stored separately. Individual files can be re-downloaded from the admin CMS if needed.
  • App source code. That lives in the Git repository (Section 04).
06

Known items and roadmap

A small set of items were deliberately deferred from the first release. They are recorded here so nothing is a surprise, and so that if you ever want to pick them up in a future version there is a clear starting point.

iPad support
The current release is phone-only on iOS. The app can still be installed on iPad in phone-compatibility mode, but it has not been optimised for the larger screen. A future v2 could enable proper iPad support if guest demand justifies it.

Real iPad screenshots
Apple requires an iPad screenshot slot even for phone-only apps. The current App Store listing uses phone screenshots letterboxed onto the iPad canvas as a placeholder. When we do iPad support, real iPad screenshots will replace these.

Image and video optimisation
Media uploaded through the admin CMS is currently stored at whatever size the file is uploaded at. A future improvement is to add automatic client-side compression on upload and a soft size cap on videos, so the app stays responsive on slower guest connections.

07

Contact

For anything at all related to the app, from a quick question to a change request, please get in touch.

Girish Rathor
Aaujar
girish@aaujar.io

If a future developer takes over, this document can be updated to point to their contact instead.

08

Change log

A running record of every change made to the app or to this handover page after the initial delivery. Newest entries at the top.

8 August 2026 — Handover page delivered
Initial version of this handover page published. Documents the state of the app at go-live on both the App Store and Google Play.