Sendit
Track your sends. Share your progress.
Ongoing Project
Sendit.
Track your sends. Share your progress.
A mobile-first bouldering tracker built for climbers who want more than a spreadsheet. Record climbs with video, see your grade progression over time, and share your best sends with a community of boulderers.
Overview
Overview
A training tool built by a climber, for climbers.
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, and the stats surface your peak grade, send rate, and session count at a glance.
Mobile First
Built entirely in React Native with Expo, targeting iOS and Android from a single codebase. File-based routing via Expo Router keeps the navigation structure clean and maintainable.
Cloud Backend
AWS powers the backend — Cognito for authentication, RDS for the database, and S3 for video storage. IAM policies enforce access control at the infrastructure layer.
Offline Ready
A persistent offline queue lets climbers log sessions without a connection. Climbs sync automatically when the device reconnects, backed by a two-tier network cache for fast reads.
Features
Features
What's under the hood
Six core feature areas — each with distinct technical requirements.
Video Recording & Upload
Record climbs in-app or pick from the camera roll. Videos are compressed before upload using adaptive quality tiers, keeping storage usage low without sacrificing too much clarity.
AI Hold Detection
An on-device CoreML model runs body-pose estimation and oriented bounding-box hold detection on iOS. Results feed back into the climb tagging flow without any round-trip to a server.
Stats & Progress
Session grouping, grade distribution charts, send-rate tracking, and animated stat counters give a clear picture of improvement over time. Climbs can be filtered by grade, style, gym, and outcome.
Social Feed
Public climbs surface in a community feed, filterable by gym. Users can follow each other, like climbs, and leave comments — all backed by AWS with IAM policies enforcing privacy controls.
Offline Queue & Sync
Climbs logged without a connection are held in a persistent offline queue (AsyncStorage) and automatically synced when the device comes back online. A two-tier network cache reduces redundant fetches.
Authentication
Full auth via AWS Cognito with PKCE flow for security. Google and Apple sign-in supported via OAuth. Sessions are persisted and refreshed automatically so users stay signed in across app restarts.
Demo
Demo
Screen by screen
Four main screens, each handling a distinct part of the climbing workflow.
Record & Log
Full-screen camera interface with one-tap recording. Grade, style, and gym are tagged before saving. The home tab groups climbs by session date with animated stat counters.
Community Feed
Public climbs from followed users and nearby gyms appear in the Gyms tab. Video plays inline; likes and comments work in a tap.
Gym
Browse gyms and discover climbs set at your local wall. Filter by grade, style, and rating. On iOS, the CoreML model can auto-detect hold colors directly from the wall.
Profile
Three sub-tabs — Activity (list/calendar), Friends (follow graph), and Settings — live inside the profile tab. Progression charts and a heatmap calendar visualise long-term trends.
Conclusion
Tech Stack
Everything that makes it run
Conclusion
Built to solve a real problem.
Shipped on both stores.
Sendit started as a personal itch — there was no great way to keep a video log of bouldering progress that didn't live in a camera roll chaos. Building it from scratch forced decisions across the full stack: designing the database schema, wiring OAuth, writing a native Expo module in Swift, building an offline queue, and tuning video compression for a 500 MB storage budget.
The result is an app that handles the edge cases climbers actually hit — bad gym WiFi, recording 30-second dyno attempts, and wanting to see exactly when they cracked V7.
Sendit — a bouldering tracker by Zelong