All projects

Raya Airways cargo portal

The web portal where Raya Airways' customers schedule their own cargo: find a flight, book space on it, and follow the shipment. I built its flight schedule and tightened the booking form.

Client
Raya Airways, through Belli
Role
Frontend engineer (contract)
When
Apr – May 2025
The Raya Airways cargo portal's flight schedule on a laptop
  • Next.js
  • TypeScript
  • shadcn/ui
  • TanStack Table
  • React Hook Form
  • Clerk

What it is

Raya Airways is a cargo airline. Its customers, mostly cargo agents buying space for their shipments, schedule that cargo themselves on this web portal.

It runs on Belli, an air-cargo platform that handles rates, flights, air waybills and load planning for airlines, and it is white-labelled: Raya's customers get a Raya-branded site on its own subdomain. There they check route rates, look up flights, book space (the air waybill number is filled in automatically) and follow each booking's progress.

My part

I joined the Belli team while the portal was being built for Raya Airways, and built the Flight Schedule, the page a customer opens to find a flight before booking. I also reworked the booking form and cleaned up Belli's main app.

Find a flight, then book it

The problem. Customers had to know which flight they wanted before they could start a booking.

What I did.
  • Built the Flight Schedule page: pick a date, an origin and a destination, and see every upcoming flight on that route.
  • Destinations narrow to the routes that actually leave from the chosen origin, so a customer cannot ask for a route that does not exist.
  • A refresh button and a table matched to the rest of the portal: flight, departure, route, aircraft, and a Book button.
  • Book opens a new booking with the route and flight already filled in.

What changed. Finding a flight and starting its booking is one page and one click.

The Raya-branded Flight Schedule page with date, origin and destination filters and a table of flights
Recreated from the shipped code in Raya's theme, with sample flights; the portal itself sits behind a login.

A booking form that matches

The problem. The order details and shipment sections of the booking form did not line up with the rest of the portal.

What I did.
  • Reworked both sections and the form around them to the portal's table style and columns.

What changed. Booking reads as part of the same product as the schedule it starts from.

Housekeeping in Belli's main app

The problem. Belli's main app carried integrations nobody used, and support could not see who was writing in.

What I did.
  • Removed the unused Supabase and Stigg integrations: 2,280 lines gone.
  • Connected Intercom with the signed-in user's details, and fixed Google Tag Manager.

What changed. A smaller app, and support conversations that start with the customer's account already known.

−2,280

lines of unused code removed

Have a project in mind?

Tell me what you need built, web or mobile, design to backend. I will come back with a plan.

Hiring a software engineer?

I am open to full-time roles. Let’s talk about your team and the work.