A rudimentary beta is available from the TestFlight link provided. A more complete version is being shipped to the App Store shortly.

Inspiration / Problem

Safe Entry is awesome — it allows the government to perform granular, location-specific contact tracing. It keeps us all safe. However, it doesn't always work as intended.

Congestion often arises during peak times. There's a certain irony at play here: Safe Entry was built to replace the physical sign-in board, yet people form long queues to scan the QR code for a "digital solution." This problem is especially pronounced at certain office buildings, where congestion builds up despite reduced capacity.

My Solution

Introducing, Fast Entry: an app which lets you move around Singapore quickly and safely.

Scan a Safe Entry QR code just once to save the location automatically to our database. This is especially useful for locations you visit frequently, eg. an office building or home apartment. (Don't worry, we never have access to your personal data — see the concerns section for more on that.)

The next time you visit that location, just select it from the list, sign-in, and you're good to go. Rinse and repeat on your way out.

How I built it

The app consists of an iOS front-end, which the user interacts with, and a Python backend. I built the mobile app using Swift, specifically SwiftUI. The backend is a Docker container, hosted on an AWS instance.

All designs were made using the tool Figma.

Moving Forward

I have released a very rudimentary prototype to a group of people for a closed-beta. The response is encouraging — they use the app daily. I've been building a more developed version with proper onboarding and better reliability & speed. That will complete in the next few days, after which I will submit it to the App Store and begin marketing.

The idea is to get it into the hands of as many people as possible, so that they can start using it when they begin leaving their houses post-lockdown.

The beauty of Fast Entry is that it becomes more useful as adoption grows, while still being useful in the early stages. Initially, people would use the app to scan and save locations they visit frequently. As our userbase grows, so would our database of locations, meaning it becomes more likely that future users can find locations in our app without scanning them first.

All in all, I envision people using Fast Entry as a more convenient way to move around Singapore. Instead of having to waste time queuing up, people can just select locations from our database, or add them if it's a new one. Reducing the friction involved with contact tracing is important for Singapore's long-term plan to reopen, and that's what I hope my app does.

Potential Concerns


Fast Entry respects your privacy. We never track your location. Adding a new location is 100% anonymous. And at no point do we ever store your identifying data: your favourites, for example, are associated with your iCloud account, and Apple doesn't give us any information about it (beyond a nonsensical UUID).

Location Spoofing

When discussing the idea, several people brought up the possible problem of location spoofing. Their concern is that if you can just select a location from a list to open its Safe Entry, you don't have to physically be situated to sign-in to a place. That means that people could potentially sign-in to locations they aren't actually at, hence "location spoofing."

After further thought, I believe this is a non-issue. Consider the flow of events for a typical Safe Entry sign-in: you queue up to scan the QR code, sign-in, then you have to show the confirmation page to the guard before he/she lets you in. At no point is there any incentive to spoof your location! The only thing one might want is to skip signing-in altogether, which my app does not facilitate.

If anything, there is a strong disincentive for people to spoof their location: if you illegitimately sign-in to a location you weren't at and it turns out someone there tested positive for COVID, you would have to be quarantined for no reason.

Share this project: