20/20 Mission logo

20/20 Mission

Volunteer portal

Privacy Policy

Last updated: August 21, 2026

About this app

20/20 Mission is a registered nonprofit in British Columbia, Canada. We collect used eyeglasses from clinics, refurbish them, and redistribute them locally and internationally.

This app is our internal operations tool. The people who use it are our own volunteers, club leaders, coordinators, and directors. There is no public account: every signup has to be reviewed and approved by an administrator at 20/20 Mission before it can do anything, and an account that is never approved never gains access to organizational data.

This policy explains what the app records, why it records it, who can see it, and what you can ask us to do about it. It covers the iOS app, the Android app, and the website, which are three front doors onto the same system.

What we collect

Your account. When you sign up or accept an invitation we store your name and your email address. Your password is handled by our authentication provider and is stored only as a hash. We cannot read it and we cannot recover it, which is why a reset link is the only way back into a forgotten account.

Where you sit in the organization. Once your account is approved we store your role (volunteer, club leader, coordinator, or director), the club you belong to if you belong to one, the coordinator or club leader who manages you if anyone does, and whether the account is pending, active, or inactive. We also record the date you last used the app, so coordinators can tell who is still active without having to ask.

A home location, only if you choose to set one. You can add a home location so your pin appears on the organization map and coordinators know roughly where a pickup needs to go. It is optional, you can change or clear it whenever you like, and the rest of the app works exactly the same without it. Who can see it is scoped: directors see every pin, a coordinator or club leader sees the volunteers they manage, and a volunteer sees only their own. Staff locations (coordinators, club leaders, and directors) are visible to everyone in the organization, because those are the places glasses get dropped off.

The work you record. The app exists to keep track of glasses, so it stores what you enter about that work:

  • Clinic visits. Which clinic you visited and when, whether you collected glasses and how many pairs, the state of the collection box when you left, a photo, and any notes you add.
  • Pickups. When you asked for a pickup, who scheduled it, when it was completed, and how many pairs changed hands.
  • Storage drop-offs. Which storage location you dropped glasses at, how many pairs, and any note.
  • Cleaning events. The events you are assigned to and the pairs you contributed at them.

Because this is an organizational record, these entries stay attributed to the person who made them and are visible to the people who oversee that person.

Clinic staff contacts. When you log a visit you can optionally record the name, job title, and email of the clinic staff member you spoke to, so the next volunteer knows who to ask for. This is workplace contact information about our partner clinics. Please do not enter anything about a clinic patient: the app has no use for it and no place to put it.

Your device, for notifications and diagnostics. If you allow notifications, we store a push token for that device along with whether it is an iPhone or an Android phone. Separately, the mobile app reports each stage of its own startup so we can diagnose launches that fail: those reports carry a random identifier generated on your device, the stage reached, the app build, the platform, and the operating system version. That random identifier is not derived from your hardware and is not linked to your account.

How we use it

We use what the app collects to run the organization, and for nothing else:

  • to sign you in and to keep your session secure;
  • to let coordinators approve accounts, place people into clubs, and see who is looking after whom;
  • to track where glasses are, so nothing sits forgotten in a box at the back of an optometrist office;
  • to schedule pickups, drop-offs, and cleaning events, and to tell the right people about them;
  • to credit volunteers for the work they have done;
  • to keep the app working, by diagnosing crashes and failed launches.

We do not sell, rent, or trade your information, and we never have. There is no advertising in this app and no advertising identifier is collected. There is no third-party analytics or tracking software in either the mobile app or the website, so nothing you do here is measured for a marketing purpose or shared with an advertising network. Nothing in the app makes an automated decision about you.

Photos

Logging a collection requires one photo of the collection box. That photo is the proof the pairs were really there, which is why it is the one piece of media the app asks for.

You choose the camera or your photo library at the moment you log the visit, and your device asks for that permission then, not at first launch. The app reads only the single image you pick. It does not browse, index, or upload anything else in your library. The image is resized and re-encoded on your device before it leaves it.

Photos are stored in a private bucket that is not published to the web and has no public link. Access is enforced by the database on every single request: the volunteer who filed the log can see their own photo, and so can the coordinator, club leader, or director who oversees them. Only staff can remove a photo, and a mistaken log is normally corrected by filing a new one rather than by deleting history.

Location

The app asks for location only while you are using it, and only when you tap the button that centers the map on where you are. If you never tap it, you are never asked.

When you do, the app takes a single reading, moves the map to it, and shows your position on the map. That reading is not saved, not written to our database, and not sent to us or to anyone else. It exists for as long as the map is open and then it is gone. Declining the permission is fine: the map opens on the region instead and everything else works normally.

The one location we do keep is the optional home location described above, and that is one you type in yourself rather than one the device reports. The app does not track you in the background and does not record where you were when you logged a visit.

Notifications

We only ask for notification permission after your account has been approved, so the first time you see the prompt the notifications are already about your own work. If you say no, the app carries on and the in-app inbox still shows everything.

What we send is operational: a pickup was scheduled or completed, you were assigned to a cleaning event, a reminder that the event is coming up, a clinic proposal needs a decision, or an announcement was posted. We never send marketing.

To turn notifications off, use your device settings. Signing out of the app removes that device from our list, so a shared phone does not keep buzzing for the previous person.

Third-party services

We keep the list short on purpose. Each of these is a service provider processing data on our behalf, under their own security and privacy commitments. None of them is given your information to use for their own marketing.

  • Supabase hosts the database, the sign-in system, and the photo storage. Most of what this policy describes lives there.
  • Vercel hosts the website and the app server, and holds the server logs used for diagnostics.
  • Expo delivers push notifications to your device on our behalf.
  • Resend sends transactional email: confirmations, invitations, password resets, and approval notices.
  • Geoapify powers address search and address lookup. Those requests go through our own server rather than straight from your device, so Geoapify receives the address text or the map point being looked up and nothing that identifies you.
  • Google Maps renders the map on Android. On iOS the map is drawn by Apple Maps, and on the website by OpenStreetMap. Loading map tiles means the map provider sees the area of the map you are viewing, as it would in any map app.

Some of these providers operate servers outside Canada, which means information covered by this policy may be stored or processed in another country and be subject to the laws there.

Retention and deletion

When somebody leaves the organization, a director deactivates their account. The account stops working immediately and stops receiving notifications, but the clinic visits, pickups, and drop-offs they recorded stay in the system. Those entries are the organization record of where the glasses went, and removing them would leave the inventory unaccountable.

Startup diagnostics are never written to the database. They live only in our hosting provider server logs and age out with those logs.

You can delete your account yourself, from inside the app. On iOS and Android, open the Alerts tab, tap your name, then Account and Delete account. On the website, open the Account page from the header. Deleting is immediate and cannot be undone: your sign-in and your personal information are removed, and the clinic visits, pickups, and drop-offs you recorded stay in the system without your name on them.

You can also ask us for a copy of the information we hold about you, ask us to correct it, or ask us to delete your account for you. Write to info@2020mission.ca and a person will handle it. Where a record has to be kept for the organization accounts, we will tell you which parts we cannot remove and why, and we will remove the rest.

Children

Accounts are for volunteers of 20/20 Mission and are created by invitation or by approval. The app is not directed at children and we do not knowingly create accounts for anyone under 13. If you believe a child has an account, write to us and we will remove it.

Changes to this policy

If we change what we collect or what we do with it, we will update this page and move the date at the top. Material changes will also be announced inside the app.

Contact us

Questions, corrections, and deletion requests all go to the same place.

20/20 Mission577 Ivy Ave, Coquitlam, BC V3J 2H8, Canadainfo@2020mission.ca

Back to sign in