Sendit
Track your sends. Share your progress.
Overview
about
Most climbers track progress the hard way — mental notes, photo albums, or scattered spreadsheets. Sendit centralises everything: record a climb right from the wall, tag it with grade and style, and watch your improvement unfold in charts and stats.
The app is designed around the bouldering session. Climbs are grouped by date, filterable by grade, style, gym, and outcome.
Mobile First
Built entirely in React Native with Expo, targeting iOS and Android from a single codebase. File-based routing via Expo Router keeps navigation clean.
Cloud Backend
AWS powers the backend — Cognito for auth, RDS for the database, and S3 for video storage. IAM policies enforce access at the infra layer.
Offline Ready
A persistent offline queue lets climbers log sessions without connection. Climbs sync automatically when the device reconnects.
Features
Under the hood
Video Recording & Upload
Record climbs in-app or pick from camera roll. Videos are compressed using adaptive quality tiers, keeping storage low without sacrificing clarity.
AI Hold Detection
On-device CoreML model runs body-pose estimation and oriented bounding-box hold detection on iOS. No server round-trip needed.
Stats & Progress
Session grouping, grade distribution charts, send-rate tracking, and animated stat counters. Filter by grade, style, gym, and outcome.
Social Feed
Public climbs surface in a community feed. Follow users, like climbs, leave comments — all backed by AWS with IAM privacy controls.
Offline Queue & Sync
Climbs logged without connection are held in a persistent queue and auto-synced when back online. Two-tier network cache reduces redundant fetches.
Authentication
Full auth via AWS Cognito with PKCE flow. Google and Apple sign-in supported. Sessions persist and refresh automatically across restarts.
Demo
Screen by screen
Record & Log
Full-screen camera interface with one-tap recording. Grade, style, and gym are tagged before saving. Home tab groups climbs by session date with animated stat counters.
Community Feed
Public climbs from followed users and nearby gyms appear in the feed. Video plays inline; likes and comments work in a tap.
Gym Finder
Browse gyms and discover climbs at your local wall. Filter by grade, style, and rating. CoreML auto-detects hold colors on iOS.
Profile & Stats
Activity list/calendar, follow graph, and settings. Progression charts and a heatmap calendar visualise long-term trends.
Conclusion
Everything that makes it run
Built to solve
a real problem.
Sendit started as a personal itch — there was no great way to keep a video log of bouldering progress that didn't live in camera roll chaos. Building it from scratch forced decisions across the full stack: database schema, OAuth wiring, a native Expo module in Swift, offline queue, and video compression for a 500 MB storage budget.
The result handles the edge cases climbers actually hit — bad gym WiFi, recording 30-second dyno attempts, and wanting to see exactly when they cracked V7.