The International NGO Safety Organisation

Keeping humanitarian workers informed on the move

Watch: How does INSO alerts help humanitarian workers stay safe on the job?

INSO shares real-time safety alerts with NGOs working in high-risk areas, traditionally by SMS and email. This is the mobile app that brings them into one place, as an alternative to SMS and email, and how I designed it as the only designer in a small engineering team.

This is the long version of the 3-minute case study. Back to the short version.

Role
Product designer
Team
Ramin Daqiq – Software engineer
Raúl Castro – Software engineer
Austin Weidler – Department lead
Timeline
Dec 2022 – 2023 + updates in 2025
Deliverables
Heuristic evaluation, interviews
UI design, prototypes, in-app tutorials
Usability testing, post-launch survey
Launch assets, promotional website

The problem

SMS and email gave people little say over which alerts they got and from where, and SMS was costly for INSO

An alert by SMS or email already said what happened, where and what to do. What people couldn't do was shape what reached them.

Only whole regions. Each NGO has one or two people managing its INSO account in the Partners Portal, a web application used on a laptop. They activate regions for teams, so a team in the south only gets alerts from the south. Nothing finer than a region existed: no area around you, no route, no single compound.

Costly, and easy to miss. SMS was also getting expensive for the country offices, and alerts got lost among every other SMS and email.

Composing and sending meant a laptop. INSO staff wrote and sent alerts from a laptop through the same system, which is hard from the field and sometimes impossible.

In some regions SMS and email were, and still are, the only way, so the app is an alternative, not a replacement. It brings both sides into one place: composing and sending alerts, and seeing how they appear in the feed. Teams still only see the regions activated for them, and can now choose which of those they're notified about from the app's settings, then narrow down further with the map modes, to an area, a radius or an exact shape.

Users

Three groups, one sending and two receiving

Receive – user groups

WhoNeedsPains before the app
An NGO field worker with a backpack walking across a car park

NGO field workersIn the field, on the move, exposed to risk, sometimes with no internet

Stay updated while movingFocus only on what affects their safety: the road, where they're going, where they sleepOnly whole regions, activated by their NGO's account admin on a laptopAlerts lost among every other SMS and email
A security officer on a satellite phone next to a field vehicle

Security and operations staffIn an office, keeping an eye on teams who travel, advising them by SMS or a call

Monitor specific areas remotelyTrack patterns and ongoing situationsCouldn't follow a place they weren't inNo radius or custom area, like the compound where staff live

SharedBoth groups

Quickly understand what's happening nearbyTrust the accuracy of alertsStay updated in real timeHigh pressure, little time to readUnclear alerts reduce trustPhone checks are a security risk

Send – user group

WhoNeedsPains before the app
An INSO staff member writing an alert on a laptop

INSO staff in the country officesCollect, validate, compose and send the alerts

Compose and send quickly, from anywhere, with or without dataReduce the cost of SMSComposing and sending meant a laptop and the Partners Portal, hard from the fieldSMS was costly

Where I came in

A first version existed, and I came in to bring some structure

The app started as an initiative from the engineers. Its features came from conversations with country office colleagues about what could be useful, so they were tied to real needs, but none of it was documented or tested. In a nonprofit, where nobody is chasing activation and retention, something people can use is already better than nothing, so the team had built what felt useful and shipped it.

I joined to support the team. What first caught my eye was that it didn't look like INSO, with brown and beige everywhere and no INSO blue. But the more I looked, the more I wanted to put some structure around the problem itself.

Before

The app when I joined: a dense dark list of alerts in capitals, an alert detail packed with text under a small map, and a map that shows a single alert pin.
Before: The app when I joined the project team.

That structure had limits. I was the only designer, with two other projects on my plate, and I couldn't reach partners, the actual end users, so country office colleagues stood in for them. I couldn't do research the traditional way, so I had to be realistic about where I could help: taking things from the first version that worked, even without data, and checking the rest through a heuristic evaluation, interviews and Maze tests with country office colleagues, then a survey with partners after launch. I decided to focus on design principles instead of a full research phase, and there would be no baseline to compare against.

Not having that structure showed later. INSO staff, the senders, were left out of the first round because nobody had talked to them about their needs and weighed them against the others. Nobody objected, but sending came back later as a patch, and so did a few other things.

The alerts list.
1 of 8

High-level overview of the app structure and key interactions around alerts.

Login

Users were asked to act before understanding what the app does

A quick heuristic evaluation of the startup and login screen turned up a few serious problems. The app opened straight on a login form and asked for location access before anyone had logged in, with no hint of why. It never said what the app was for. The login itself was hard to use too, with a barely visible button, an "Invalid email" error before anyone had typed, how to get an account explained in a tiny note, and no way to reset a password. Country office colleagues believed a welcome email would be enough to explain things, but someone could install the app today and only open it a month later when an alert comes in, and by then that email is long gone. So the explanation had to live inside the app.

A phone's home screen: the INSO app downloads, then opens on a white screen with the INSO logo in the middle.
1 of 15
A new partner gets the INSO app. It opens on its logo.

Explain first, ask for location later

Here is how I approached each of the main problems from my heuristic evaluation of the startup and login screen.

ProblemSolution
Location access was asked first, before anyone had logged in and with no explanationLocation access is now asked only after, once people know what it's for
The app never said what it was forTwo short onboarding screens now come before the login
The login button was barely visible, and "Invalid email" showed before anyone had typedThe login got the brand back. It starts with just an email and a clear Continue button, and the validation stopped shouting "Invalid email" before anyone had typed a thing
How to get an account was a tiny note, and there was no way to reset a password"Don't have an account? Learn more" now sits under the form in readable text and leads to the registration page on ngosafety.org, with a "Forgot password?" link and a show/hide toggle on the password
The INSO splash screen.
1 of 7

After: The app opens on the INSO logo, and two short onboarding screens come before the login.

Most partners found getting started easy.

24 of 31 rated installation and onboarding 4 or 5 out of 5 (average 4.1/5) · post-launch partner survey · no baseline for the old version

Survey bar chart for installation and onboarding: 39% gave 5, 39% gave 4, 16% gave 3, 3% gave 2 and 3% gave 1. 31 responses, average 4.1.
Onboarding satisfaction after the new design (31 responses, avg 4.1/5)

Alerts

The main screen had all the information, but it was hard to read and scan

Eight alerts squeezed on one screen

Eight alerts were squeezed on one screen, with titles of 12 to 16 words in a tiny column and small dates and distances fighting for attention. The engineers' idea was to show as much as possible without scrolling, so the question became: see everything at once, or read each alert easily? My first thought was "where should I be looking?" There was no way to search by place either, and no profile or way to reach terms, FAQs or info about the app, just a settings icon at the top right.

Before

The old alerts list, annotated: inconsistent typography, low spacing between items, and location, distance and time not prioritised.
Before: Alerts screen before redesign, showing density and unclear hierarchy
Alerts list, former designRedesign approach
Five type styles competed in a 70px row: bold all caps titles, small caps locations, all caps dates, tiny right-aligned distance and timeOne title style in sentence case, and a clear secondary level for the rest
Location, the thing people scan for, was the smallest element, under a four-line titleLocation first, then a short title, then time
Alerts were separated by a hairline with almost no padding, so rows mergedMore space and a clearer boundary between rows
No search, no filter and no account area, just an unlabelled orange circle and a settings iconSearch at the top, a simpler filter, and an entry for the profile, terms and help
Every alert had the same warning icon, with no cue for new or unseen alerts and no way to saveA marker for unseen alerts, a Recent Alerts block, and a save button on each alert
Hide tableShow table

Saved alerts weren't in the first draft. I asked the country office colleagues, who stood in for partners, how people could keep track of the alerts they care about when they all mix together, and we landed on pinning them. It started as one Saved page in the bottom menu, next to Alerts and Settings.

The new alerts list: location first, then a short title, then time.
1 of 6

After: The new alerts list: built for scanning, with search at the top, a simpler filter and a list/map toggle.

Filtering was quick and easy: testers found alerts by place or by date in about 20 seconds.

10 of 10 filtered by location in 22 s on average, ease 9.3/10 · 13 filtered by date in 19 s, ease 8.2/10 · Maze tests with country office colleagues

Maze results for filtering alerts by location: the task scenario next to the screens testers went through, with a 100% success rate.
Task-based usability test scenario and results for filtering alerts by location

Alert detail

I am in an alert. What information will help me the most?

The old alert detail: a dark title bar, a big map with two pins and no legend, a teal ALERT_UPDATE banner with an email address, then short fields in large type (an empty Update, the date again) and justified text under headings that look like body text.
Alert detail, former designRedesign approach
The map filled the top third, so the facts came after itA summary first (what, where, when, how far), with the map moved lower
Two pins, teal and red, with no legendOne pin, with the place name and distance below
The latest update and advice were buried under five lower-value fieldsFull location, incident type, latest update, latest advice, in the order the interviews showed
The date and time showed three times in three formats, and one field was emptyOne date and time, and the empty field is gone
A raw system label (ALERT_UPDATE) and an email address served as the bannerA clear "Alert update" tag, and an "Alerts history" section
Body text was justified with uneven margins, and headings looked like body textLeft-aligned text with consistent margins, and clear headings with space around them
Hide tableShow table
The redesigned alert detail: an Alert tag and the place, the title, date, time and distance on top, then full location, incident type, latest update and latest advice under clear headings, with the map and its one pin lower down.
1 of 2

After: A summary first (what, where, when, how far), one date and time, then the latest update and advice in the order the interviews showed, with the map lower and one pin. Enlarge to see the whole screen.

Maps

A map adds the where, for people who need it

Most people never open the map. By default the app does what SMS and email did: it sends you the alerts from the regions you subscribed to, and that is the main use. On top of that it adds a map layer and more control, like choosing the areas you want alerts from and the map mode that fits what you're doing. The map is for people who need to see where an alert comes from, follow one area, or explore during a mission, and who would otherwise need another map tool. About 1 in 6 people who used the app have opened a map.

The old map had two tools, Proximity and Polygon. To look anywhere else, you had to open a single alert from the list and jump to its location.

Explore: what's happening along my route?

A heuristic evaluation of the old map turned up three things that mattered here. You couldn't explore freely, because the map only opened as a tool for setting a radius or drawing an area. You couldn't select an alert on the map and read it there. And you couldn't move around the map and then switch back to the list to see only the alerts from the place you had moved to.

The old alerts list.
1 of 6

Before: The former map: a tool for setting a radius or drawing an area, not for exploring.

Explore fixes all three. You can move around the map freely, tap an alert to read its details on the map and open each one separately, and go to any place and switch back to the list to load the alerts from that area. None of this was possible in the former design, and it came from colleagues in the country offices who raised it when we tested. Testing also caught two smaller things: scrolling an alert also moved the map, and alerts without a location never showed up on it, so list and map counts didn't match.

The alerts list, with a Map button at the bottom.
1 of 6

After: Explore: move around the map freely, tap an alert to read it there, and switch back to the list for that area.

Testers found the map from the alerts list and explored it freely, with no drop-offs.

8 of 8 completed · 33 s on average · ease 8.6/10 · Maze test with country office colleagues

Proximity: I'm not in the area I want to monitor.
Can I still stay informed?

Proximity shows alerts within a radius of your live location, or of a pin you drop somewhere else. The first version had two ways to set that radius: on the map, and with a slider in the filter menu a bit like dating apps do. Most testers went to the map through the Map button on the alerts list, so the slider went and the radius now lives in one place.

6 test participants were able to set a radius around a place they weren't in, in 53 seconds on average, with an ease score of 6.8 out of 10.

Maze test with country office colleagues

While the participants were thinking aloud during the test, I understood that most of them, if not all, read the little intro and voiced their understanding of the proximity mode. But it's one thing to understand something and another to know how to put it into practice. So I learned that the proximity intro needed to be a proper step-by-step tutorial. Nothing too extensive, to avoid killing engagement, but not a pure intro either, without showing how to use the mode.

The map in Explore mode.
1 of 6

After: The first version I tested: one pop-up to explain Proximity.
The map in Explore mode.
1 of 8

After: The redesign: a three-step tutorial shows how to use live and custom location.

The tutorial cleared up the difference between live and custom location, and colleagues were more satisfied with the feature.

Interviews with 5 country office colleagues who hadn't seen the app before · updated design and prototype

Geofence: how do I track one specific area, like a residential campus?

Let's take an organisation that wants to follow what happens around the compound where its staff live. They can draw a shape on the map to cover the exact area, and keep getting alerts from inside it.

Before

The former Polygon screen: a map with a drawn shape, two unlabelled orange buttons, a grey note saying press the back button to save the polygon filter, and a Proximity / Polygon switch at the top.
Before: The former Polygon mode, numbered to match the table below.

Polygon mode (Geofence)

Geofence (Polygon) former designRedesign approach (see slideshow below)
1Saving meant pressing the Back button ("Press the back button to save the polygon filter"). It was hidden and backwards, since Back normally cancels.An explicit Confirm button, and a "Geofence established" message afterwards
2No instructions. The first screen was just a map, with no hint to tap to drop pins, or that zooming first matters.A three-step tutorial: zoom, drop pins, confirm
3No result feedback. You drew a shape but couldn't tell how many alerts it contained."76 alerts in the selected area", with the alert markers inside the shape
4Two unlabelled orange buttons (an undo arrow and a "+"). Their purpose wasn't clear, and orange didn't match the rest of the app.An undo button, plus labelled "Clear all" and "Edit geofence" buttons
5The name "Polygon" is a geometry term, not a task.Renamed Geofence, one of three clear tabs: Explore, Proximity, Geofence
The map in Geofence mode, before drawing.
1 of 11

After: The redesigned Geofence: a three-step tutorial, a Confirm button, the number of alerts in the area, and clear labels.

It was also the hardest to learn: 5 of 8 testers finished the task but none of them took the intended path. Two asked for a video, which is heavy on weak connections, so Geofence got the same kind of three-step animated tutorial instead.

Colleagues understood Geofence, but saw it as relevant only to those who work actively with maps.

From the same 5 interviews; the lowest-ranked feature in the post-launch partner survey (9 of 30), as expected for a specialist tool

What people actually use

Across releases, Explore takes most of the map traffic, with Proximity and Geofence well behind. That matches what partners ranked as most important, and it fits Geofence being a tool for a handful of specialists.

After the first release

The project didn't stop here, since continuous feedback from country office colleagues kept shaping the app after launch:

  • Notifications limited to your regions or to a saved map search, after a short survey with country office staff. People do open them: over 100,000 times from notifications in three years.
  • Unseen alerts pointed out, a new Recent Alerts block, and a restyled date picker with quick options (last 3 days, last week, last month) that shows clearly when a filter is on.
  • Animated tutorials in every map mode.
The alerts list while browsing.
1 of 3

New alerts pointed out live while you browse the list, with the Recent Alerts block separating what's new from what you've read.

What about creating and sending alerts from the app?

This was part of the problem from the start, but we agreed to focus on the NGO side first. With management sign-off I designed the first version in early 2025, and it was released in September 2025 together with login through an INSO account: a simple form with a map pin and distribution lists, plus updates to existing alerts.

Composing an alert: the alerts list with an INSO ALERT label and a megaphone button, the empty form, the filled form with location and distribution lists, and the sent confirmation.
Composing an INSO ALERT from the phone, from the megaphone on the alerts list to the confirmation. Alert text, place names, the map and list sizes are blurred.

Outcome

How the app is used today

After the launch peak of about 1,600 users, a steady base settled in: around 800 a month through 2024, and 450 to 630 through 2026. About 8 in 10 of them are returning users, so most people who use it keep coming back.

Monthly active and returning users since launch, rounded. Test and visitor traffic left out.
Table view
MonthActive usersReturning users
Jun 20231,6301,160
Jul 20231,2701,080
Aug 20231,000900
Sept 2023890800
Oct 2023870780
Nov 2023830770
Dec 2023900760
Jan 2024860740
Feb 2024820730
Mar 2024780700
Apr 2024800700
May 2024790670
Jun 2024810690
Jul 2024760660
Aug 2024720620
Sept 2024840680
Oct 2024740630
Nov 2024740630
Dec 2024740650
Jan 2025730640
Feb 2025690600
Mar 2025710630
Apr 2025700620
May 2025680580
Jun 2025660580
Jul 2025740630
Aug 2025690590
Sept 2025650530
Oct 2025640530
Nov 2025530470
Dec 2025500420
Jan 2026480400
Feb 2026480410
Mar 2026530440
Apr 2026500420
May 2026460400
Jun 2026460380
Jul 2026460370
Aug 2026450380
Sept 2026630450

Take a look at app.ngosafety.org (opens in a new tab)

What I can't say. Nothing was measured before the new design, so I can't say whether it made the app better, only that it's used and that people keep coming back.

In a post-launch survey of 31 partners, the 29 who rated ease of use gave it an average score of 4.1/5.

The weakest score was whether the app helped them reach their goal: 21 of 31 gave it a 4 or 5 (average 3.7), and a few said they hadn't really used it yet.

Takeaways

  • Design for the worst connection first. Weak networks, stress and no time to learn shaped most decisions, from animated tutorials instead of video to a list you can scan in seconds.
  • Test with proxies, then check with the real people. Country office colleagues before launch, partners after.
  • Security and usability pull against each other. Blocking copy and screenshots keeps alerts safe, but partners named it their biggest frustration.
  • Talk to every group early. The senders were left out of the first round and came back later as a patch.
  • What I'd do differently: set baseline metrics before designing, run a proper retest of Geofence, and set up tracking before a feature ships.

Do you have a project in mind?
Let's connect.

Open to perm roles & new projects