Herya is a full-stack yoga practice platform for personalized Vinyasa Krama sessions, guided breathwork, meditation, reflective journaling, and role-based workflows for practitioners, tutors, and admins.
.
├── docs/
│ ├── PLANNING.md
│ ├── herya-insomnia.json
│ ├── herya-app-memoria.docx
│ └── herya-app-memoria.pdf
├── herya-app-backend/
│ ├── src/
│ ├── README.md
│ └── package.json
├── herya-app-frontend/
│ ├── src/
│ ├── README.md
│ └── package.json
├── biome.json
├── docker-compose.yml
└── README.md
Backend: Node.js 22, Express 5, MongoDB + Mongoose 9, JWT, bcrypt, Multer, Cloudinary, Nodemailer, express-rate-limit, express-validator, Swagger, Jest, Biome
Frontend: React 19, Vite 7 (SWC), React Router 7, Tailwind CSS 4, Framer Motion, Lucide React, Axios, Vitest
- Node.js 22.x
- npm compatible with Node 22
- MongoDB (local or Atlas)
- Optional: Cloudinary for uploads
- Optional: SMTP for password reset emails
- Optional: Docker Engine + Docker Compose v2
-
Clone the repository:
git clone https://github.com/spidevmax/herya-app.git cd herya-app -
Install dependencies:
cd herya-app-backend && npm ci cd ../herya-app-frontend && npm ci cd ..
-
Create environment files:
cp herya-app-backend/.env.example herya-app-backend/.env cp herya-app-frontend/.env.example herya-app-frontend/.env
-
(Optional) Seed the database:
cd herya-app-backend npm run seed -
Start both servers:
- Backend:
cd herya-app-backend && npm run dev
- Frontend:
cd herya-app-frontend && npm run dev
- Backend:
Default local URLs:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
- Swagger: http://localhost:3000/api-docs
- Development:
docker compose up --build
npm run dev— Start backend with file watchingnpm start— Start backend in production modenpm run seed— Import seed datanpm run seed:recalc-stats— Recalculate user stats from existing datanpm test— Run Jest testsnpm run lint— Run Biome lintnpm run format— Format files with Biomenpm run check— Run Biome checksnpm run check:fix— Apply Biome fixes
npm run dev— Start Vite dev servernpm run build— Build production bundlenpm run preview— Preview production buildnpm run lint— Run Biome lintnpm test— Run Vitestnpm run test:coverage— Run tests with coveragenpm run test:watch— Vitest watch mode
- CORS errors:
FRONTEND_URLinherya-app-backend/.envmust match the actual frontend origin. - Frontend cannot reach the API:
VITE_API_URLmust point to the backend API root, usuallyhttp://localhost:3000/api/v1. - MongoDB connection failures: Check
DB_URLand any Atlas network/IP allowlist settings. - Upload failures: Configure
CLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEY, andCLOUDINARY_API_SECRET. - Password reset email does not send: Configure
SMTP_HOST,SMTP_USER,SMTP_PASS, and related SMTP values. - Biome errors: Run
npm run check:fixto auto-fix formatting and lint issues.
- Swagger/OpenAPI: http://localhost:3000/api-docs
- Additional docs in
/docs/
Copyright (c) 2026 Max Primavera
All rights reserved.
This repository and its contents are proprietary. No permission is granted to use, copy, modify, or distribute the software.