// Adds dimensions UUID, Author and Topic into GA4
Thursday, June 4, 2026
30.5 C
Singapore

SG to JB cross-border bus service booked via Grab has travellers with standing room only; passenger says ‘have to squeeze like public bus’

SINGAPORE: If you thought of trying out the cross-border bus services booked via Grab to Johor Bahru from Singapore, as it turns out, you might not be the only one. The rides, however, are apparently so jam-packed that there are standing-room only, as a couple of TikTok videos are now showing.

Grab introduced the option of booking a bus, or a ferry, to JB customs last month at a starting price of $3. And while the savings are great, the actual travel may be standing room only, as some TikTok users have found out.

On Jul 14, TikTok user @candaries posted a video of her bus ride booked via Grab’s cross-border service, captioning it “Tried Grab Bus to JB because we read everywhere. Didnt know we have to squeeze like public bus 🤣#jbtrip #grabbus #johorbahru.”

@candaries

Tried Grab Bus to JB because we read everywhere. Didnt know we have to squeeze like public bus 🤣#jbtrip #grabbus #johorbahru

♬ OMG – White Gangster

The seven-second video has since gotten over 217,000 views.

“Booked Grab bus to JB and thought we will be guaranteed a seat. But NO! We had to stand,” she wrote in the video.

One day later, another TikTok user, @quowookka, also posted a video of her ride to JB customs, writing, “Grab Bus no difference to taking SBS bus, see how squeezy #grabbus #transtar #jb #johor #johorbahru.”

It also showed every seat on the bus occupied by a traveller, plus the middle aisle full of people standing and holding on to the safety bars, with hardly any room to move.

@quowookka

Grab Bus no difference to taking SBS bus, see how squeezy #grabbus #transtar #jb #johor #johorbahru

♬ Now Look at This – Dramatello

Based on comments that other netizens left, it appears that there are still glitches that Grab and its partners may need to work on for the service to work smoothly to travellers’ satisfaction.

Screenshot 2023 08 03 at 10.48.48 AM

Screenshot 2023 08 03 at 10.48.59 AM

Screenshot 2023 08 03 at 10.49.07 AM

Screenshot 2023 08 03 at 10.49.15 AMWhen The Independent Singapore reached out to Grab for further comment, a spokesman told us via email: “We launched our bus and ferry ticketing service in July 2022, in partnership with EasyBook. The partnership lets consumers easily purchase bus and ferry tickets offered via EasyBook’s ticketing platform through the Grab app for routes between Singapore and Malaysia. All buses and ferries offered under this partnership are fully operated and managed by respective transport operators.”

The spokesman also added the following points for further clarification:

  • Grab is not the cross-border travel service provider and does not operate the buses and ferries. We offer a convenient and affordable way for consumers to buy tickets on our app through the integration of Easybook’s services on our platform.
  • Therefore, we kindly request the team not to refer to the service as “Grab bus” but rather as “cross-border bus services booked via Grab” to accurately reflect the nature of the service provided.

/TISG

How to go JB without long queues & traffic jam? Take the ferry!

- Advertisement -

Hot this week

Malaysia divided over JAIS warning on ‘no pork, no lard’ restaurant signs

The Selangor Islamic Religious Department (JAIS) has prohibited non‑halal restaurants from displaying “no pork, no lard” signs, insisting that businesses obtain official halal certification instead...

Singapore-based design firm The Afternaut Group to design Bank of Singapore Centre co-working space

SINGAPORE: Singapore-based design firm The Afternaut Group was appointed by Arcc Spaces to design its newest co-working space at the Bank of Singapore Centre, 63 Market Street, set to open in July ...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks