Personal safetyMobileBackendPayments

SOS Button

One button: an emergency report, coordinates to trusted contacts, camera video

What it gave the business

The client got a working emergency channel rather than an app: one tap fires three independent paths at once, so if one fails the signal still leaves through the other two.

The problem

A person in danger has no time to choose between calling, texting and hitting record. The app had to do all three from a single tap.

My role

Mobile app, database and server logic, payments, deployment and domain — all mine.

What was built

  • Phone sign-in: a one-time code through an SMS gateway wired into GoTrue with a custom hook
  • SOS flow: an emergency report carrying the statement text, coordinates and a video link
  • In parallel: SMS to trusted contacts with coordinates and a short link, plus an event row in the database
  • Front-camera video in storage behind signed URLs: 14 days, or kept forever if it was part of an SOS
  • Subscription with recurring charges, tiers and promo codes
SOS tapEmergency servicestatement, coordinates, linkTrusted contactsSMS with coordinatesStoragevideo behind a signed URLDatabaseSOS eventSelf-hosted by mePostgreSQL, auth, storage, edge functions

The engineering core

The infrastructure was deployed by hand instead of taken from a managed cloud: a PostgreSQL schema with triggers and functions, auth with a custom SMS-gateway hook, storage behind signed URLs, Deno edge functions, own domain. The only case here where the whole stack was built by hand for a reliability-critical scenario.

Stack

FlutterSupabase (self-hosted)PostgreSQLDenoTypeScript

Integrations

CloudPaymentsSMSC.ru

Tell me about your project

I will tell you how long it takes and what it costs before any work starts. If it is not my kind of task, I will say so right away and point you elsewhere if I can.

Message on Telegram
Next case
Subscription VPN