A modern PWA application for creating choreographies, learning new moves, and tracking your dance progress.
Try it now: bailapp.web.app
- ๐ฑ Mobile-First - Optimized for mobile with touch-friendly UI and bottom navigation
- ๐ญ Learn - Browse and learn new dance moves
- ๐จ Create - Design and save your own choreographies
- ๐ Progress - Track your dance journey and improvements
- ๐ Multilingual - Full support for English, French, Spanish and Italian
- ๐ฒ PWA - Install on any device and use offline
- ๐ Optional Auth - Explore freely, sign in only when needed
- โก Fast - Code splitting, lazy loading, and optimized caching
- React 19 with TypeScript (mobile-optimized)
- Vite 5 for fast development with code splitting
- TailwindCSS 3.4 + Shadcn UI for touch-friendly components
- React Query 5 for data fetching
- react-i18next 15 for internationalization
- Firebase SDK 11 for authentication and data
- Mobile-First Design with bottom navigation and safe areas
- Firestore for database
- Firebase Auth (Google)
- Firebase Hosting
- Bun installed (alternatively, you can use "yarn" or "npm")
-
Clone the repository
git clone https://github.com/PolThm/bailapp.git cd bailapp -
Install dependencies
bun install
-
Start development server
bun dev
The app will be available at
http://localhost:5173
To develop locally with Firebase emulators:
bun emuThis will start:
- Firestore emulator
- Auth emulator
- Hosting emulator
| Command | Description |
|---|---|
bun dev |
Start development server |
bun build |
Build for production |
bun preview |
Preview production build |
bun deploy |
Deploy to Firebase |
bun deploy:hosting |
Deploy hosting |
bun emu |
Start Firebase emulators |
bun lint |
Lint code |
bun format |
Format code with Prettier |
bun type-check |
Check TypeScript types |
bun ngrok |
Start ngrok for tunneling |
bailapp/
โโโ apps/
โ โโโ web/ # Frontend React app
โ โโโ public/
โ โ โโโ icons/ # PWA icons, favicons
โ โ โโโ images/ # UI images (logos, illustrations)
โ โ โโโ manifest.webmanifest
โ โ โโโ browserconfig.xml
โ โโโ src/
โ โโโ components/ # Reusable components
โ โโโ context/ # React Context providers
โ โโโ hooks/ # Custom hooks
โ โโโ locales/ # Translation files
โ โโโ pages/ # Page components
โ โโโ config/ # Configuration files
โ โโโ data/ # Video lists and other data
โ โโโ App.tsx
โ โโโ main.tsx
โโโ firebase.json
โโโ firestore.rules
โโโ .firebaserc
โโโ package.json
โโโ tsconfig.base.json
The app supports four languages:
- ๐ฌ๐ง English (default)
- ๐ซ๐ท French
- ๐ช๐ธ Spanish
- ๐ฎ๐น Italian
Translation files are located in apps/web/src/locales/.
Bailapp is designed mobile-first with:
- โ Touch-optimized UI (44px minimum touch targets)
- โ Bottom navigation bar (5 main items)
- โ Safe area support (iPhone X+ notches)
- โ Responsive typography and spacing
- โ Performance optimized (code splitting, caching)
- โ PWA ready (installable, offline mode)
The app follows an "optional authentication" pattern:
- All pages are accessible without login
- Users can browse and explore freely
- Authentication is required only when trying to save data (choreographies, progress)
- A modal prompts users to sign in when needed
-
Build the project
bun build
-
Deploy to Firebase
bun deploy
Your app will be live at https://bailapp.web.app
Contributions are welcome! Please read our Contributing Guide for details on how to contribute to this project.
MIT - see LICENSE file for details.