NextBus SG

March 2020 | Bus timings in a simplified manner

I was never happy with the bus apps I used. All I needed was a list of bus timings in a simple interface. Since none of the existing solutions filled my needs, I decided to work on my own.

All other solutions required too many interactions, and it always used to take me a minute or more to find what I was looking for. It was quite frustrating to me that there was nothing that could get you the information you want at your fingertips.


My code received rave reviews by the Learn Flutter Code YouTube channel for the UI design and backend.

The project has 80+ stars on GitHub.

Problems solved by NextBus SG

My app provides the key functionalities of a public transport app in a simplified yet powerful manner. While it looks simple, it comes with features no other bus app currently has.

  1. View timings and crowd of the next three buses: Each bus timing is color-coded based on the crowd.
  2. Rename bus stop: Sometimes bus stop names don’t make much sense to us humans. For instance, what’s the difference between Bedok Station Exit A and Bedok Station Exit B? We don’t have to remember, because they can be changed to Opposite Bedok Mall and Bedok Mall.
  3. Dark MRT map: While all apps have the MRT map, none have a dark map.
  4. Minimalist, clutter-free interface: NextBus SG shows you only the information you need – nothing more, nothing less.


I chose Flutter for its ease of use, great developer experience, and platform-agnostic development. I was able to release the app for iOS and Android rapidly.

DataMall and Gov.SG provide free APIs for public transport, bus timings, and other related data in Singapore.

The app is easily extensible to other countries because of the mini-backend it works off of.

Next steps

I’m currently awaiting more feedback in order to improve the app further.