Back to ProjectsMobile App

Zinkly

Book 1:1 music lessons with pro musicians — pay, schedule, and meet over Zoom.

  • Flutter
  • Dart
  • GetX
  • Dio
  • Firebase Auth
  • Google Sign-In
  • Sign in with Apple
  • Stripe Connect
  • flutter_stripe
  • Socket.IO
  • Zoom Meeting SDK
  • Node.js
  • MongoDB Atlas
  • WebView
  • Lottie
  • fl_chart
  • Xcode / Android Studio
  • CocoaPods / Gradle
Problem

The Challenge

Independent music teachers had no purpose-built way to sell one-on-one lessons online — they were stitching together Calendly, Stripe, and Zoom manually, with no shared booking record, no automatic refunds on failure, and no e-receipts for students.

Solution

The Approach

Built a Flutter app with two role-specific experiences (student & musician) on a shared backend. Students pick a slot from a per-day availability grid, pay via Stripe Payment Sheet, and receive a Zoom join link plus a modern e-receipt. Musicians set availability, accept/reject pending bookings, and watch earnings land in their Stripe Connect account. Payments use destination charges (platform fee retained, remainder routed to the artist), with orphan-rollback so a failed Stripe call never leaves a half-created booking. Deep links, profanity filtering, offline gating, and skeleton loaders polish the edges.

Impact

The Result

Turned a fragmented 3-tool workflow into a single tap-to-book experience. Musicians get paid faster (instant transfer to connected accounts), students get a clean e-receipt and Zoom link immediately, and the platform has full visibility into every booking, payment, and dispute through the unified backend.

Key Results

Two-sided marketplace: separate user & musician role flows in a single app

Stripe Connect destination charges with orphan-rollback safety on payment failures

Auto-provisioned Zoom meetings — host/join URLs delivered at booking time

App Screenshots

Zinkly screenshot 1

1 / 6