// Adds dimensions UUID, Author and Topic into GA4
Wednesday, June 10, 2026
29.4 C
Singapore

Man: Cycling home after clubbing because I refuse to pay $40 for a Grab

SINGAPORE: The TikTok video of a man who decided to take a bike home from Clarke Quay to Sengkang after a night out went viral over the past few days, getting 333,000 views since it was posted on Feb 14.

“Cycling home after clubbing because I refuse to pay $40 for a Grab,” wrote TikTok user Tan Jun Hao, who goes by @oahnuj on the platform. He captioned his video with “cq to sengkang bike tour.”

@oahnuj

cq to sengkang bike tour

♬ Cats on Mars – Seatbelts

He showed himself taking a long way home, with a necessary stop to get a drink, of course, since the trip took an hour and a half after all.

Screenshot 2023 02 20 at 2.24.44 PM

But the best part is that he only ended up spending $3 for the bike he rented for his ride home. Additionally, he burned 400 calories on his 16.68-kilometre ride home, the Trip Details page of the app he used showed.

Screenshot 2023 02 20 at 2.20.26 PM

The video has gotten a lot of comments from other TikTok users.

Screenshot 2023 02 20 at 2.13.04 PM

Screenshot 2023 02 20 at 2.13.18 PM

Screenshot 2023 02 20 at 2.15.08 PM

Many commenters approved of what Tan Jun Hat had done as being both environment-friendly and wallet-friendly at the same time.

Screenshot 2023 02 20 at 2.14.02 PM

“I would’ve passed away mid-journey,” another wrote.

Screenshot 2023 02 20 at 2.20.49 PM

/TISG

Netizens call out lovey-dovey couple on train for taking non-foldable bicycle on MRT

 

- Advertisement -

Hot this week

Ex-NMP calls out Singaporeans who accept local Indians but discriminate against ‘Cecas’

Former Nominated Member of Parliament Calvin Cheng said in a social media post that recent anti-Indian comments on social media, particularly from some Singaporean Chinese users, are often disguise...

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