← Home

Womaniya Yoga

Customer and admin apps for my wife's yoga studio, plus its website, built as a side project to learn mobile development with AI in languages I didn't know.

Built for
My wife's yoga studio. The studio and its work are hers; this is my learning project around it.
Time
26 May – 24 Sep 2026 (about 4 months, 41 commits)
AI tools
Claude Code (Claude Sonnet 4.6, then Fable 5 and Sonnet 5), with a running change log the AI reads at the start of every session
Stack
Flutter and Dart for Android and iOS, Firebase (Auth, Firestore, Cloud Functions, Cloud Messaging), Next.js 16 and Tailwind CSS for the website

User stories

  • As the studio admin, I want students, batches, fees and attendance in one app, so that the studio's records live in one place.
  • As a student, I want my diet plan, weight log and attendance on my phone, so that I can follow my programme day to day.
  • As the studio admin, I want to load a whole diet plan from an Excel sheet and preview it before it is saved, so that setting up a plan isn't one form at a time.

Situation & constraint

This is a learning project, not a client engagement. I wanted to improve my AI skills and see how fast I could pick up unfamiliar platforms, so I built these apps for my wife's studio, for both Android and iOS, in languages I did not know beforehand.

Architecture

  • A monorepo with two Flutter apps, customer and admin, sharing one package for models, repositories and services. Neither app imports from the other.
  • Screens never talk to Firestore directly. All reads and writes go through repositories in the shared package.
  • Firebase Cloud Functions in TypeScript run the notification engine; Cloud Messaging delivers the notifications.
  • Separate Firebase projects for development and production, so experiments never touch real data.
  • Bulk diet-plan import: parse an Excel file, preview what would be created or updated per sheet, then commit. Importing the same file twice never duplicates data.