Uncategorized

Under the Hood: The Tech Stack Behind a Self-Owned Yoga Education Platform

I built two interconnected websites — theyoga.club and ashtanga.tech — that together run a yoga education business, a membership community, a content operation, and an automated media pipeline. I did it on WordPress with open-source and lifetime-licensed tools. No Kajabi. No Teachable. No monthly SaaS drain.

This post is a look under the hood. Three lenses: what was built, what it offers, and why it matters that I own all of it.

Lens 1: Operations & Tech Stack — What Was Built

The Architecture

Two WordPress installations on a single Hostinger server. Shared user accounts synced bidirectionally via WP Remote Users Sync. One domain faces the practitioner community (theyoga.club). The other is the education platform (ashtanga.tech). They talk to each other constantly — webhooks, REST APIs, cross-site MCP tools, shared CRM data.

ashtanga.tech — The Education Engine

867 published study guides. Hierarchical. Seven top-level domains: Humanities, Teaching Arts, Adaptation, Anatomy & Physiology, Yoga Techniques, Research & Systems, and Themes. Each guide is a deep-dive resource with tagged cross-references, breadcrumb navigation, and a custom archive template. A REST API (/study-guide/v1/latest) serves the most recently updated guide to the other site’s email system automatically.

686 Functional Ashtanga posts. A custom post type with its own taxonomy (joint-action) cataloging movement patterns, joint actions, and conditioning protocols. These rotate daily via a cron-based content rotator that cycles through ten domain categories on a fixed schedule.

17 courses across 7 space groups in FluentCommunity. The courses span the full curriculum — Range Conditioning, Humanities, Yoga Techniques, Research & Systems, Adaptation, Themes, Anatomy & Physiology, Teaching Arts, Asana Theory, Executive Systems, Agentic Ashtanga, Decentralized Ashtanga, Foundations of Praxis, The Mind-Body Organism, Introduction to Functional Ashtanga, and Ashtanga Vinyasa Yoga. Plus a personalized Asana Range Conditioning course (ARC) with pose-specific conditioning sections. Every lesson was rewritten in my voice with interactive Gutenberg blocks — callouts, flashcards, accordions, tabs, checklists. 1,800+ lessons total.

Placement Quiz → Personalized Course Generator. A Fluent Forms quiz (11 interest areas, 3 length targets) that generates a custom FluentCommunity course on submission. The mu-plugin maps quiz scores to the 14 most relevant courses, builds a personalized curriculum, enrolls the user, and triggers a FluentCRM automation that emails them their course link. The conversion funnel: anonymous visitor → quiz → email → paywall → signup. All automated. Zero manual work.

Ashtanga Tech Support. A custom post type for video responses to Reddit questions. A cron-based Reddit scraper pulls questions from r/ashtanga and r/yoga into FluentBoards (board 26). Scripts get written as card comments. When a card moves to the “Scripted” stage, a draft post auto-generates with the intro, original question, script text, and study guide links — all in Gutenberg blocks. I record in Zync, and the webhook routes the finished video back to the matching draft post, downloads it to the media library, sets the featured image from the thumbnail, and stores the transcript. The single post template is video-first with share buttons (Facebook, LinkedIn, Reddit, Email, Copy Link) and prev/next navigation.

Cross-site intelligence. An MCP tools mu-plugin registers search_mjh_posts, search_yoga_club_posts, and search_all_sites — letting the AI chatbot on theyoga.club query ashtanga.tech’s content in real time. Study guide publishes and updates fire webhooks to theyoga.club’s FluentBoards. Functional Ashtanga posts do the same. Everything is tracked.

The content rotator. Every morning at 7 AM UTC, a cron job selects the next study guide in a ten-domain rotation and the next Functional Ashtanga post. These feed into FluentCRM smartcodes that populate the daily email templates automatically. No manual content selection required.

theyoga.club — The Community & Operations Hub

The Shala Daily. 89 issues and counting. Each post uses 28 custom meta fields — hero emoji, takeaway, pullquote, source attribution, four Sanskrit concepts with meanings, four explore links with icons. A custom single template renders all of it with branded typography (Bebas Neue, Archivo, Playfair Display). When a Shala Daily post is scheduled, a FluentBoards card auto-creates with the full content as a comment and a smartcodes breakdown. When the video is recorded in Zync, the webhook finds the matching post, downloads the video to the media library, sets shala_video_url, and attaches the thumbnail as featured image. When the post publishes, an Instagram Reel auto-posts at 6 AM ET via the Instagram Graph API.

Jane Writer. An AI chatbot built on AI Engine with a custom MCP tools layer (tyc-intersite-mcp.php, 4.0). Jane uses a 170+ keyword map to match topics to ashtanga.tech study guides, fetches articles cross-site via REST, and creates Shala Daily posts with all 28 meta fields populated. The function dispatch uses the mwai_ai_feedback filter with a two-function workflow: shala_fetch_article pulls the source material, then shala_create_post builds the post. Function call depth is set to 8 to handle the back-and-forth.

FluentCRM. 841 contacts across 4 lists (Shala Member, Active Member, Newsletter, Coaching). 35+ tags tracking everything from membership status to retreat interest to payment failures. 7 automations: welcome sequences, first-class journeys, subscription lifecycle (paid → active → cancelled → expired → re-engagement). Daily email campaigns with smartcodes pulling fresh content from the rotator.

FluentCart. Replaced WooCommerce entirely. One product: Yoga Club Membership. Stripe Connect integration. Subscriptions stored in cents (bigint), trial simulation via is_trial_days_simulated flag. Custom webhook handler patched for Stripe API version compatibility. 26 customers, 5 active subscriptions.

FluentBoards. 7 boards: Shala Daily Tracker, Yoga Club Operations, Independent Teacher Success Track (with individual boards for coaching clients), and a leadership development template board. The Shala Daily Tracker has automated card creation, video attachment, content comments, and stage-based workflows.

FluentBooking. Appointment scheduling gated by FluentCRM tag 43 (“shala membership active”). Non-members see a purchase prompt. Members book directly.

Fluent Support. Customer support ticketing. Fluent Forms handling intake for teacher training, retreat sales, room rental contracts, emergency waivers, and contact forms.

Social automation. SchedulePress handles social media scheduling. WP Fusion connects CRM data to content access. Uncanny Automator bridges the gaps between plugins that don’t natively talk to each other.

Custom Code

Between both sites: 25 custom mu-plugins. A Reddit scraper. A content rotator. A placement quiz engine. A cross-site MCP toolset. Board automation with webhook receivers. FluentCRM smartcode generators. An intersite chatbot brain. A video webhook router. A course generator. A CPT for video responses. Custom REST APIs. Custom meta boxes. Custom single templates. All written in PHP, all version-controlled, all running on a $12/month hosting plan.

Lens 2: The Product — What We Actually Offer

For Practitioners

The Yoga Club Membership. Access to the full FluentCommunity platform on ashtanga.tech. 17 courses, 1,800+ lessons, 867 study guides, 686 Functional Ashtanga protocols. Interactive course blocks — flashcards, callouts, checklists, accordions. A placement quiz that builds you a personalized curriculum based on your experience level and interests. Coaching with direct booking access. Community spaces for discussion.

The Shala Daily. A daily publication delivered by email and posted to theyoga.club. Each issue pulls from peer-reviewed research, traditional texts, or practitioner experience — then connects it to practice with Sanskrit concept breakdowns, curated study guide links, and a video component. 89 issues so far, every one written in a voice that treats the reader like an adult.

Ashtanga Tech Support. I pull real questions from Reddit’s yoga and Ashtanga communities, write a script, record a video response, and publish it with the original question, the full script, and links to relevant study guides. The entire pipeline — from Reddit scrape to published video post — is automated except for the part where I actually think and talk.

For Teachers

867 study guides organized into a searchable, hierarchical library. These aren’t blog posts. They’re reference material — each one tagged, cross-referenced, and structured for both quick lookup and deep study. PDF export available.

Teaching Arts curriculum. A dedicated course on pedagogy, class design, adjustment methodology, and teacher-student ethics. Supported by study guides on alignment, adaptation principles, and authentic teaching.

Independent Teacher Success Track. FluentBoards-based coaching program with individual boards per client, stage-based progression, and accountability tracking. Leadership development templates built in.

Functional Ashtanga library. 686 protocols mapping joint actions to conditioning work. Each post tagged by joint action taxonomy. Daily rotation keeps fresh content cycling through the CRM email pipeline.


Lens 3: Why Owning This Matters

The Money

Let’s do the math on what this stack replaces.

    • Course platform (Teachable/Kajabi/Thinkific): $149–$399/month


    • Email marketing (ConvertKit/Mailchimp): $50–$150/month at 800+ contacts


    • E-commerce (Shopify/subscription plugin): $29–$79/month


    • Project management (Monday/Asana): $10–$30/user/month


    • Booking (Calendly/Acuity): $12–$20/month


    • Support ticketing (Zendesk/Freshdesk): $15–$49/month


    • Forms (Typeform/JotForm): $25–$50/month


    • Community platform (Circle/Mighty Networks): $39–$119/month


    • AI chatbot (custom GPT wrapper): $20–$100/month


    • Social scheduling (Buffer/Later): $15–$50/month

Conservative total: $364–$1,046/month. That’s $4,368–$12,552/year.

My actual cost: $19/month hosting. Lifetime licenses for the Fluent ecosystem. One-time purchases for Kadence Pro, AI Engine Pro, and a handful of utilities. The ongoing cost is essentially hosting plus Stripe transaction fees. That’s it.

Minimum savings: $3,000/year. Realistic savings for the feature set I’m running: closer to $8,000–$10,000/year. Over five years, that’s a full-time teacher’s annual retreat budget.

The Data

Every email address, every quiz response, every course completion, every support ticket, every booking, every payment record — it lives in my database. On my server. Not in Kajabi’s data warehouse. Not in Teachable’s analytics pipeline. Not in ConvertKit’s export queue that takes 48 hours and gives you a CSV missing half the fields.

When I want to know which study guides drive the most course enrollments, I write a SQL query. When I want to cross-reference FluentCRM tags with FluentCommunity course progress, I join two tables. When I want to build a custom report on student retention by interest area, the data is right there. No API rate limits. No premium analytics tier. No “upgrade to Enterprise for custom reports.”

I can back up everything with a single command. I can migrate to a new host in an afternoon. I can export my entire student list with every interaction they’ve ever had. Try doing that when Teachable decides to change their pricing tier or Kajabi sunsets a feature you depend on.

The Real Cost of SaaS — What It Takes From Teachers

This is the part that actually matters to me.

The SaaS model doesn’t just cost money. It costs competence. Every time a yoga teacher pays $200/month for Kajabi instead of learning how their business actually works, they’re outsourcing a skill they need. Not because everyone should be a web developer. But because understanding your own systems — how your content reaches people, how your emails work, how your payments flow, how your students progress — is not optional knowledge for someone running an independent teaching practice.

The SaaS pitch is: “You don’t need to understand this. Just pay us and teach yoga.” It sounds generous. It’s not. It’s a dependency trap. When you don’t understand your own infrastructure, you can’t make informed decisions about your business. You can’t customize your student experience. You can’t build the specific workflows your teaching practice needs. You’re locked into someone else’s idea of what a yoga business should look like.

And here’s the part nobody talks about: most SaaS platforms are designed to prevent you from leaving. Your content is in their format. Your student data is behind their API. Your email list is tangled up in their automations. The longer you stay, the harder it gets to go. That’s not a feature — it’s a business model.

I’ve watched teachers pay $300/month for a course platform, $100/month for email, $50/month for scheduling, and $40/month for forms — nearly $6,000 a year — and still not understand how any of it connects. They can’t tell you why a student dropped off. They can’t build a re-engagement sequence. They can’t create a personalized learning path. Not because they’re not smart enough. Because the tools they’re paying for were designed to keep them dependent, not capable.

The yoga world talks endlessly about self-practice. About showing up on your mat and doing the work yourself. About not depending on someone else to tell you what to do every morning. That same principle applies to your business infrastructure. Learn the systems. Own the data. Build the workflows yourself — or at least understand them well enough to direct the process.

This isn’t about being anti-technology or anti-convenience. I use plenty of tools. But I own them. They run on my server. I can see every line of code. I can modify anything. I can hand the whole thing to another developer tomorrow and they’d have everything they need. That’s not a luxury. For an independent teacher, that’s survival.

The alternative is paying rent on your own business forever and calling it “ease of use.”

Leave a Reply

Your email address will not be published. Required fields are marked *