Why I built Weywell

People often describe South Africa as simply “unsafe”. That leaves out the local knowledge people use every day: a road you avoid at night, a protest blocking a junction, or concerning behaviour someone has noticed on their usual walk.

I wanted to make that knowledge easier to share. Weywell is for South Africans first, especially people who feel vulnerable travelling on their own. Visitors could benefit too, but the idea starts with neighbours looking out for one another.

What it does

Weywell opens on a map of your area, with a default 20 km radius that you can change. You can zoom, move around the map and open current community notices.

Reports cover road closures or protests, unsafe behaviour, reported crime and recent break-ins. The wording stays practical and non-graphic. A report is community context, not proof that an incident happened or a label declaring a whole neighbourhood unsafe.

Sending a heads-up is a main action on the map. The report form asks you to choose a category, check the public location and confirm the pin. You can add an optional photo, such as a blocked road. The app asks people not to include faces, number plates, names or private addresses.

Reports go into a moderation queue before appearing publicly. Road and safety notices last 24 hours; break-in context lasts seven days. This matters because a warning that stays on a map forever can become misleading.

The route checker draws a driving route to a destination and looks for current notices near its roads. Profile lets you save your everyday area, and the Alerts page brings together local notices. Weywell Plus adds category filters and saved area and route watches. Viewing notices, submitting reports and checking a route stay free.

How I built it

The iOS app is built in SwiftUI, with MapKit for the map, address search and driving directions. Supabase stores reports, moderation decisions, photos and saved watches. Database access policies keep pending reports off the public map and restrict moderation access.

RevenueCat handles the Plus offering, purchase flow, purchase restoration and the weywell_plus entitlement. The current development build uses test purchases; it is not a live, revenue-generating subscription business yet.

The code is open source under the MIT license. The repository includes the app, backend schemas and setup instructions. Local credentials are excluded from the public source.

The difficult parts

Address recognition and route drawing took more work than I expected. A safety app needs the right location, not just something vaguely nearby. I also had to think carefully about what a report should reveal, who can approve it and when it should disappear.

Another important decision was not putting the basic safety information behind a paywall. Plus is for extra control, not access to a warning that someone may need.

Where it stands

This is a student prototype, not an emergency service, an official police reporting channel or verified crime statistics. Reports may be incomplete or wrong, and a route with no notices is not a guarantee of safety.

There is no public App Store release yet. Production push delivery and production subscription setup still need to be completed, and formal law-enforcement involvement is not represented as established. Local notices can be viewed inside the app, but I do not want to claim background alerts are already live.

Next, I want to test with a small community, improve the reporting and review process with their feedback, and finish the production setup before a wider launch.

Built With

Share this project:

Updates

Submission history