● Live in productionWeb PlatformMarketplace

Vespac Marketplace

A trade-and-lease marketplace built for Singapore's maritime industry — letting shipping companies list, search and negotiate vessels and equipment from one place, with chat baked in.

Client
Vespac Pte Ltd
Industry
Maritime & Shipping
Duration
6 months
Team size
6 engineers
Location
Singapore
Platforms
Web · iOS · Android
Project background

Years of partnership, one new product

Vespac PTE Ltd is a Singapore-based maritime services provider with years of expertise in shipping, oil and gas. Codomotive had partnered with Vespac on several prior engagements providing software support across their domain.

For this project, Vespac wanted to expand into a new line of business: a dedicated marketplace built solely for the needs of the shipping and maritime community — somewhere buyers and sellers of vessels and equipment could find each other directly.

What we delivered

  • A faceted search with multiple filters to narrow vessels by type, size, location and lease terms
  • In-app chat between buyers and sellers per listing, with photo sharing
  • Single sign-on via Google & Facebook, backed by Firebase Auth
  • Native iOS and Android apps sharing the same backend as the web app
Vespac search and filtering screen
Screens

A look inside the product

Tech stack

Built with

Grouped by layer, so you can see exactly what's running this product in production — useful if your team will eventually take this over.

Front-end
Angular 7
TypeScript
RxJS
Backend
Spring Boot 2
Maven
Firestore DB
Mobile
Swift (iOS)
Kotlin (Android)
Gradle
Testing & Ops
Crashlytics
Jasmine
Firebase Auth
Challenges & solutions

Where it got hard

The honest version — what slowed us down, and how we worked through it.

Challenge

Real-time chat at sea-going scale

Buyers and sellers needed to negotiate per-listing with photo sharing, but users were often on slow or intermittent maritime internet connections, causing dropped messages.

Solution

Offline-first message queue

We built a local write-ahead queue on top of Firestore so messages persist on-device and sync once connectivity returns, with delivery receipts to confirm the other side actually got it.

Challenge

One backend, three front-ends

Web, iOS and Android all needed the exact same listing, search and auth logic — building it three times would have meant three places for bugs to diverge.

Solution

A single Spring Boot API contract

We defined one versioned REST contract early and held every client to it, with Jasmine and Crashlytics in CI to catch contract drift before it shipped.

Challenge

Niche search needs no off-the-shelf filter handled

Vessel search needed combinations like tonnage range + lease term + region that generic e-commerce filter libraries weren't built for.

Solution

Custom composite indexing

We hand-rolled a composite Firestore index strategy for the most common filter combinations, cutting median search response time well under a second.

Impact

Where it landed

<1s
Median search response time
3
Platforms on one shared backend
6 mo
Idea to production launch
99.9%
Uptime since handover
Vespac client representative
Marcus Tan
Operations Director, Vespac Pte Ltd
Client since 2017
Engagements 4 projects
Contract Build + ongoing support
Region Singapore / APAC

"Codomotive already understood our industry from earlier projects, which meant we skipped months of explaining shipping logistics from scratch. The marketplace launched on time and our brokers were using it within a week.