-
-
Open a class, see what it will feel like, and share a polished class poster.
-
Discover upcoming classes through visual posters and practical context.
-
Gentle rainbow-glitter milestones celebrate consistency without rankings or body metrics.
-
Teachers review request themes and AI-assisted changes before applying anything.
-
Secure sign-in with one-tap access to a credential-free synthetic judge demo.
-
Asanacha app icon — the Steeping Leaf mark, supplied uncropped at 1024 × 1024.
-
-
Inspiration
Yoga class listings usually tell you a style, level, and duration—but not what a particular class will actually feel like. Students arrive without knowing whether the focus is hips, balance, backbends, core, or recovery. Instructors, meanwhile, receive scattered requests and still need to protect the intent and craft of the class.
Asanacha makes a live, instructor-led class understandable before it happens, lets students contribute one bounded request, and gives the instructor a safe way to turn that context into a reviewed plan.
What it does
Students discover upcoming classes through warm, visual class posters; see the intended focus, level, location, cost, and practical details; and leave one updateable request. Booking, payment, and attendance stay with the instructor's existing tools.
Instructors see an identifier-free request summary beside the current draft. Teacher Pro can ask the planning assistant to adapt that class using the current plan, student requests, and recent teaching history. The assistant reads application data through three narrow MCP tools and returns a typed before/after proposal. Nothing is saved until the instructor reviews and explicitly applies it.
After class, teachers and students can explicitly keep a truthful taught or practiced activity. Asanacha turns those facts into personal history, gentle rainbow-glitter achievement badges, and privacy-bounded social share cards—without leaderboards, body metrics, or inferred attendance.
The signed-out Demo button opens a deterministic synthetic walkthrough of Discover, requests, instructor planning, proposal review/apply, Teacher Pro, posters, badges, and sharing. Demo actions stay on the device and never create a purchase or modify live data.
How we built it
Asanacha is an Android-first Expo/React Native app with a TypeScript/Express backend and Supabase/PostgreSQL persistence. Supabase Auth sessions are verified server-side and every domain action uses the server-derived actor. RevenueCat maps the same authenticated UUID to Teacher Pro, and the backend rechecks that entitlement immediately before any paid model invocation.
The ordinary path stays conventional: mobile → API → application service → repository → PostgreSQL. AI is a selective side path: API → OpenAI Agents SDK → read-only MCP tools → the same application services. The model never receives SQL, arbitrary HTTP, shell access, or authority to choose an identity. Proposal persistence remains a separate deterministic confirmation step.
Class posters use a deterministic manifest and compositor around carefully selected stock photography. Achievement badges celebrate consistency—not competition—and share cards clearly distinguish personal activity from class attendance.
Challenges
The hardest part was not generating text—it was preserving trustworthy boundaries across identity, entitlement, model context, and persistence. We built short-lived actor-bound proposals, source/request-version staleness checks, strict schemas, safe external-link handling, and a free path that survives RevenueCat or model failure.
We also had to make a complex, two-sided product immediately legible to judges. The result is a credential-free synthetic demo that shows the entire value loop in under two minutes while keeping the live integration and release boundaries honest.
Accomplishments that we're proud of
- A coherent teacher/student loop backed by persisted data in the production architecture.
- Genuine MCP reads of the current draft, student requests, and recent classes.
- Typed AI proposals with visible before/after review and explicit confirmation.
- A server-authoritative RevenueCat Teacher Pro gate before model spend.
- Actor-bound request, class, and taught/practiced authorization.
- Deterministic personal history, badges, posters, and privacy-bounded sharing.
- A one-tap, credential-free synthetic judge demo isolated from live data.
- A focused free experience that remains useful even when paid providers are unavailable.
What we learned
MCP is valuable because several planning workflows can share narrow, typed application operations; it is not a reason to move ordinary CRUD into an agent. The best AI feature was also the one with the clearest non-AI boundary: the model proposes, while authenticated application code authorizes, validates, and persists.
We also learned that a reliable demo needs two paths: real integration evidence for technical credibility and a deterministic synthetic mode so a judge can explore immediately without shared credentials or risky account-transfer behavior.
What's next for Asanacha
Next steps are deeper instructor profiles, saved classes, teacher follows, “want this again,” and history-aware home-practice adaptations. Studio scheduling, rosters, internal payments, audio capture, pose recognition, and competitive leaderboards remain deliberately outside the MVP.
Try the interactive demo: https://shipaton-prototype.expo.app
Built With
- android
- eas
- expo.io
- express.js
- mcp
- node.js
- openai
- postgresql
- railway
- react
- revenuecat
- supabase
- typescript
- vitest
- zod
Log in or sign up for Devpost to join the conversation.