A comprehensive workout tracking application built with Nuxt.js that helps you manage your fitness journey with powerful features for tracking exercises, routines, and progress.
- Multi-Profile System: Create and manage multiple user profiles with seamless switching
- Exercise Management: Create and organize custom exercises with detailed tracking
- Workout Routines: Build reusable workout templates with exercise sequences
- Session Logging: Track sets, reps, weights, and exercise notes during workouts
- Rest Timer: Built-in timer with audio alerts and customizable duration
- Personal Records: Automatic tracking of best sets and performance metrics
- Workout History: Complete history of all workouts with detailed records
- Sharing: Share workout summaries via Web Share API or clipboard
- Anonymous Authentication: Seamless Firebase auth with automatic setup
- Dark/Light Mode: Adaptive theme support with Nuxt UI
- Mobile-First Design: Responsive interface optimized for mobile devices
- Offline Support: Local state management with automatic sync
- Real-time Updates: Optimistic updates with Pinia Colada queries
- Framework: Nuxt.js 3 with Vue 3 Composition API
- Database: Firebase Firestore
- Authentication: Firebase Anonymous Authentication
- State Management: Pinia with @pinia/colada
- UI Framework: Nuxt UI v3 with Tailwind CSS
- Icons: Lucide via @iconify-json/lucide
- Utilities: VueUse for composition utilities
- Date Handling: date-fns for formatting
- Analytics: Vercel Analytics
- Type Safety: TypeScript throughout
- Node.js 18+ or Bun
- Firebase project with Firestore enabled
- Clone the repository:
gh repo clone krisantuswanandi/arrogance
cd arrogance- Install dependencies:
bun install- Configure Firebase:
cp .env.example .envAdd your Firebase configuration to .env:
NUXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NUXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NUXT_PUBLIC_FIREBASE_APP_ID=your_app_idStart the development server:
bun run devThe app will be available at http://localhost:3000.
# Development server
bun run dev
# Type checking
bun run typecheck
# Linting
bun run lint
# Build for production
bun run build
# Preview production build
bun run previewNo guidelines, just do whatever you want. This is a personal project, so feel free to contribute in any way you see fit.
- Start: Choose a routine or start a quick workout
- Track: Add exercises, log sets with weight/reps/type
- Timer: Use the rest timer between sets with audio alerts
- Notes: Add exercise and workout notes during the session
- Complete: Save to history and update personal records
- Normal Sets: Standard working sets with progressive numbering
- Drop Sets: Indicated with ↓ icon for reduced weight sets
- Warmup Sets: Marked with 🔥 icon for preparation sets
- Automatic tracking of best sets by weight and reps
- Historical comparison with last workout performance
- Exercise-specific record modals with detailed history
- Switch between different user profiles
- Isolated workout history per profile
- Default profile creation with sample exercises