ANGi Ride Guard
First-time setup
Emergency Contacts
Added contacts receive crash alerts, ride start and end emails. Include email address for email notifications.
Rider
Your name
Crash countdown before auto-alert
30
sec
Sensor Profiles
Set crash sensitivity per sensor. Motorcycle riding produces higher normal G-forces — use a higher threshold to avoid false alerts.
Minimum G-force to trigger alert
3G
3G is a good starting point for cycling.
Notification Backend
Emails sent via Resend. API runs as a Cloudflare Pages Function on the same domain — no separate Worker needed.
Setup — do once (~5 min)
1Deploy this ZIP to Cloudflare Pages (direct upload). The functions/ folder deploys automatically as your API.
2Pages → your project → Settings → Environment Variables. Add these secrets:
APP_SECRET  ←  copy orange field below
RESEND_API_KEY  ←  your Resend key
STRAVA_CLIENT_ID  ←  already set
STRAVA_CLIENT_SECRET  ←  already set
3Redeploy the Pages project after adding secrets, then tap Test API below.
4Emails send from onboarding@resend.dev to your contacts. To use your own FROM address later, verify a domain in Resend and add FROM_EMAIL as a secret.
App Secret (copy → paste as APP_SECRET in Cloudflare)
Strava
Connect Strava to auto-upload your ride when you end it. Uses your STRAVA_CLIENT_ID and STRAVA_CLIENT_SECRET from Cloudflare.
Before connecting: in strava.com/settings/api set the Authorization Callback Domain to your Pages domain (e.g. angi-ride-guard.pages.dev).
ANGi Ride Guard
Ready
📡
Not Connected
Select a profile then scan
🚴
Bicycle
3G threshold
🏍
Motorcycle
6G threshold
Ride Active · Monitoring ON
00:00
km/h
Battery
0
Packets
0
Events
GPS
Acquiring…
Live Packets FFA6 FFA4
Waiting for packets…
🚨
Crash Detected
Impact on your ANGi sensor.
Sending alert in…
30
Time
GPS
Impact
Channel
Ride Complete
🏁

Ride Complete

Distance km
Duration
Packets
Events
GPX Track Data
Copy this text and paste into a .gpx file, or share via the button below.