Client project

Fantasy Kingdom — amusement park ticketing app

The first amusement-park app built for iOS in Bangladesh, alongside its Android counterpart.

iOS Fantasy Kingdom

Fantasy Kingdom needed a mobile app for visitors to browse rides, buy tickets and check park information from their phones. I built the iOS and Android apps — the first amusement-park app to reach Bangladesh's App Store.

Fantasy Kingdom is a 20+ acre amusement and water park. Before this project, visitors had no digital touchpoint — ride information lived on an ageing website, tickets were bought only at the gate, and picnic/resort bookings happened over the phone.
I built the official mobile app: a single place for guests to explore every ride and attraction on an interactive park map, buy tickets and packages, reserve picnic spots and resort stays, browse in-park restaurants, and keep their booked tickets in a digital wallet. Every piece of content — sliders, notices, opening hours, ride descriptions, pricing, packages — is CMS-driven, so the park's marketing team can update the app without a release.


The challenge

The park wanted an app that felt like a polished consumer product, but the constraints were unusual:

  • Everything had to be editable without shipping an update. Ride copy, prices, seasonal notices, opening hours and promo banners change constantly. Hard-coding any of it was a non-starter.
  • The park map is the heart of the experience. Guests think in terms of "where is the roller coaster," not lists. The existing map was a single giant illustrated JPEG with an old HTML image-map of clickable regions — and it had to work as a smooth, pinch-to-zoom, tappable surface on every screen size.
  • Payments and ticketing had to be trustworthy on a pre-existing backend and payment gateway that I didn't control.
  • One developer, two platforms, a real launch date. The architecture had to stay small enough to move fast and stable enough to maintain.
The approach

Put the whole park in the guest's pocket

I designed the app around how visitors actually think about a day out: where do I want to go, what's on, and how do I get in. The home screen leads with what's changing — seasonal notices, today's opening hours, featured tickets and offers — then opens out into the park's attractions, dining, picnic spots and resort.
Make the park map something you explore, not a picture you squint at
The map is the centrepiece. Guests can pan and pinch to zoom around the full illustrated park, and tapping any ride or attraction brings up its name, description and photo. It's the same mental model as standing at the park with a paper map — except every attraction is one tap from its details, and a preview on the home screen invites people in.

 

Remove every barrier between "I want to go" and "I'm going"

  • One-step sign-in. A guest just enters their email; the account is created for them if it's new. No forms, no confirmation loops, no password to forget.
  • Buy tickets and packages in the app. Browse by category, add to a cart, apply a promo code, and pay — the first time the park has sold entry anywhere other than the gate.
  • A checkout that respects the guest's time. Saved details fill themselves in, and the payment step is protected so nobody loses a transaction by tapping back at the wrong moment.
  • A digital ticket wallet. Everything bought lives in the app, along with a full history of past orders.
    Book picnics and resort stays without a phone call. Reservation forms replace the back-and-forth that used to happen over the line.
  • Save favourites instantly, even before signing in.

 

Let the park run the app itself

Almost everything a guest sees — banners, notices, opening hours, prices, ride and package descriptions, dining information — is controlled from the park's own system. The marketing team updates a season's messaging or pricing and it appears in the app immediately, with no new release and no developer involved.


Sweat the feel

The app has a single, consistent visual language across every screen, and it's built to look right on any phone rather than only the one it was designed on. Loading states are designed placeholders that mirror the real content, so the app feels responsive even on a slow connection. The park can also reach guests directly with notifications for events and offers.

The outcome
  • Shipped on both platforms and maintained through multiple feature releases (interactive map, packages, resort booking, ticket wallet) to v1.2.5.
  • Zero-deploy content updates: the park's team now runs banners, notices, pricing, opening hours and ride content entirely from the backend — no app release, no developer involvement.
  • The park's first digital sales & booking channel: tickets, packages, picnic reservations and resort enquiries can all be completed in-app instead of at the gate or over the phone.
  • A maintainable one-developer codebase: ~110 Dart files behind a consistent provider-per-resource pattern, so new content sections and screens ship in hours, not days.
Project facts
  • TypeClient project
  • PlatformiOS
  • Client Fantasy Kingdom

Screens

Like what you see?

Let's build something together — tell me what you’re building.

Get in touch

More like this