All workБүх ажил

01 / 05 · Fitness membershipФитнессийн гишүүнчлэл · 2026

GymHub

Mongolia's multi-gym membership network — one membership across 30+ fitness clubs. I shipped new membership packages, upgrades, an HR portal for companies and admin tooling.Монголын олон фитнессийн нэгдсэн гишүүнчлэл — 30 гаруй клубт нэг гишүүнчлэл. Шинэ багц, багц ахиулах, байгууллагын HR портал болон админы хэрэгслүүдийг би гаргасан.

CategoryАнгилал
Fitness membershipФитнессийн гишүүнчлэл · 2026
RoleҮүрэг
Full-stack developer · Team memberFull-stack хөгжүүлэгч · Багийн гишүүн
TeamБаг
3 contributors across the member site and admin dashboard — 20 of my pull requests merged.Гишүүдийн сайт болон админ самбар дээр 3 оролцогч — миний 20 pull request merge хийгдсэн.
StatusТөлөв
LiveАжиллаж байна
ReactViteNext.jsTypeScriptTailwind CSSSupabaseQPayVercel
For companies · Dark
Landing · Dark
Mobile · Dark
30+

partner clubs (gymhub.mn)хамтрагч клуб (gymhub.mn)

20

merged pull requestsmerge хийсэн PR

2

apps: site + adminапп: сайт + админ

3

contributorsоролцогч

01

OverviewТойм

GymHub brings fitness clubs across Mongolia under one membership. Members buy packages on gymhub.mn and train at partner clubs; staff run plans, organizations and members from a Next.js admin dashboard on Supabase.GymHub нь Монголын фитнесс клубуудыг нэг гишүүнчлэлд нэгтгэдэг. Гишүүд gymhub.mn дээр багц авч хамтрагч клубт хичээллэдэг; ажилтнууд багц, байгууллага, гишүүдийг Supabase дээрх Next.js админ самбараас удирддаг.

01

The problemАсуудал

The business needed new products and sales channels — a new package tier, upgrades, company-sponsored memberships and weekly visit limits — without breaking how existing members' status was calculated.Бизнест шинэ бүтээгдэхүүн, борлуулалтын суваг хэрэгтэй байсан — шинэ багцын түвшин, ахиулалт, байгууллагын санхүүжүүлсэн гишүүнчлэл, долоо хоногийн хязгаар — одоо байгаа гишүүдийн төлөвийн тооцоог эвдэлгүйгээр.

02

Architecture & solutionАрхитектур ба шийдэл

I added the GymGo package with its own tier, a package-upgrade flow and admin-managed promo banners; an HR portal with an admin HR catalog and invite links that lock the organization at sign-up; weekly visit limits with clear messaging; video lessons and office packages; and fixed membership status to use Ulaanbaatar time.Өөрийн түвшинтэй GymGo багц, багц ахиулах урсгал, админаас удирдах промо баннер; админы HR каталогтой HR портал, бүртгүүлэхэд байгууллагыг түгжих урилгын линк; ойлгомжтой мессежтэй долоо хоногийн хязгаар; видео хичээл, оффис багц нэмж, гишүүнчлэлийн төлөвийг Улаанбаатарын цагаар зөв тооцдог болгосон.

03

The resultҮр дүн

All 20 pull requests shipped to production on gymhub.mn and the admin dashboard between August and September 2026.20 pull request бүгд 2026 оны 8–9-р сард gymhub.mn болон админ самбар дээр production-д гарсан.

02

Role & responsibilitiesҮүрэг ба хариуцлага

RoleҮүрэгFull-stack developer · Team memberFull-stack хөгжүүлэгч · Багийн гишүүн
TeamБаг

3 contributors across the member site and admin dashboard — 20 of my pull requests merged.Гишүүдийн сайт болон админ самбар дээр 3 оролцогч — миний 20 pull request merge хийгдсэн.

  • GymGo package tier and the package-upgrade flowGymGo багцын түвшин, багц ахиулах урсгал
  • HR portal for companies with an admin HR catalog and backendАдмин HR каталог, backend-тэй байгууллагын HR портал
  • Organization invite links that lock the company at sign-upБүртгүүлэхэд байгууллагыг түгжих урилгын линк
  • Weekly visit limits, video lessons, office packages and QPay token fixesДолоо хоногийн хязгаар, видео хичээл, оффис багц, QPay токены засвар
  • Admin tools: moderators, member accounts and marking gyms as fullАдмин хэрэгсэл: модератор, гишүүний бүртгэл, клубыг дүүрсэн гэж тэмдэглэх
03

The systemСистемийн бүтэц

01

Member siteГишүүдийн сайт

React + Vite on gymhub.mn: packages, sign-up, upgrades and the HR portal at /hr.gymhub.mn дээрх React + Vite: багц, бүртгэл, ахиулалт, /hr HR портал.

02

Admin dashboardАдмин самбар

Next.js 16 + Tailwind on Supabase for plans, gyms, organizations and members.Supabase дээрх Next.js 16 + Tailwind: багц, клуб, байгууллага, гишүүд.

03

HR portalHR портал

Companies invite employees; the invite link fixes their organization.Байгууллага ажилтнаа урина; урилгын линк байгууллагыг тогтооно.

04

Packages & paymentsБагц ба төлбөр

Tiered packages, upgrades, promo banners and QPay checkout.Түвшинтэй багц, ахиулалт, промо баннер, QPay төлбөр.

04

ScreensДэлгэцийн зургууд

Captured from the live product. Click a screen to enlarge it.Ажиллаж буй бүтээгдэхүүнээс авсан зургууд. Зураг дээр дарж томруулж харна уу.

05

Engineering highlightsИнженерчлэлийн шийдлүүд

  1. 01

    Timezone-correct statusЦагийн бүсэд зөв төлөв

    Membership status is computed in Ulaanbaatar time, so members don't expire a day early.Гишүүнчлэлийн төлөвийг Улаанбаатарын цагаар тооцдог тул нэг өдрийн өмнө дуусахгүй.

  2. 02

    Locked invite sign-upТүгжээтэй урилга

    Employees joining via an HR invite can't pick the wrong organization.HR урилгаар нэгдсэн ажилтан буруу байгууллага сонгож чадахгүй.

  3. 03

    Weekly visit limitsДолоо хоногийн хязгаар

    Seven-day visit rights are enforced and explained to members in the app.7 хоногийн зочлох эрхийг хэрэгжүүлж, гишүүдэд апп дотор тайлбарладаг.

  4. 04

    Upgrades without churnАхиулалт

    Members upgrade packages in place, including from the new GymGo tier.Гишүүд, үүнд GymGo-гийнхон, багцаа шууд ахиулж болно.

Next projectДараагийн төсөл

SparkXPWant something like this? Let's talkҮүн шиг зүйл хэрэгтэй юу? Ярилцъя