Skip to content

dryor/open-workouts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Open Workouts

Open source workout tracking web app focused on simplicity and progress visualization.

🎯 Overview

Open Workouts is a modern, open-source fitness tracking application built with cutting-edge web technologies. Our mission is to provide a clean, intuitive platform for users to track their workout progress without the complexity and clutter found in traditional fitness apps.

✨ Key Principles

  • Simplicity First: Clean, distraction-free interface
  • Progress Focused: Meaningful visualizations of your fitness journey
  • Open Source: Transparent development and community-driven features
  • Privacy Conscious: Your data belongs to you

πŸ—οΈ Monorepo Structure

This project uses a monorepo structure managed with pnpm workspaces:

open-workout/
β”œβ”€β”€ apps/
β”‚   └── web-app/              # Next.js 15 web application
β”œβ”€β”€ shared/                   # Shared packages and utilities (future)
β”œβ”€β”€ pnpm-workspace.yaml      # Workspace configuration
└── package.json             # Root package scripts

πŸ“ Applications

  • apps/web-app/ - Main Next.js web application
    • Next.js 15 with App Router & Turbopack
    • React 19 + TypeScript + Tailwind CSS v4
    • Supabase authentication & database
    • shadcn/ui components (New York style)
    • Dark mode by default

πŸ“¦ Shared Packages (Planned)

  • shared/types/ - Shared TypeScript definitions
  • shared/utils/ - Common utility functions
  • shared/ui/ - Reusable UI components
  • shared/config/ - Configuration presets

πŸš€ Quick Start

Prerequisites

  • Node.js 20+ (Node 18 reached EOL April 2025)
  • pnpm package manager
  • Supabase account for authentication & database

Installation

  1. Clone the repository:
git clone <repository-url>
cd open-workout
  1. Install dependencies:
pnpm install
  1. Set up environment (see apps/web-app/README.md for details):
cd apps/web-app
cp .env.local.example .env.local
# Add your Supabase credentials
  1. Start development:
# From root directory
pnpm dev

# This will start all applications

πŸ“‹ Available Scripts

# Development
pnpm dev          # Start all applications in development mode
pnpm build        # Build all applications for production

# Individual app commands
cd apps/web-app
pnpm dev          # Start only the web app
pnpm build        # Build only the web app
pnpm lint         # Run ESLint

🎯 Current Features

βœ… Implemented (v0.1.0)

  • User Authentication
    • Email/password registration with verification
    • Secure login with session management
    • Route protection and middleware
    • Sign out with proper redirect
  • Modern UI/UX
    • Dark mode by default
    • Responsive design (mobile-first)
    • Loading states and error handling
    • Sonner toast notifications
  • Developer Experience
    • TypeScript throughout
    • Philosophy of Software Design principles
    • Comprehensive documentation
    • Form validation with React Hook Form + Zod

πŸ”„ Coming Soon (v0.2.0)

  • Password reset functionality
  • User profile management
  • Basic workout logging
  • Dashboard improvements

🎯 Roadmap (Future Versions)

  • Workout Management
    • Custom workout creation
    • Exercise library
    • Set and rep tracking
  • Progress Visualization
    • Charts and graphs
    • Progress photos
    • Personal records tracking
  • Social Features
    • Workout sharing
    • Community challenges
    • Achievement system

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 15 (App Router, Turbopack)
  • Language: TypeScript
  • UI Library: React 19
  • Styling: Tailwind CSS v4
  • Components: shadcn/ui (New York style)
  • Forms: React Hook Form + Zod validation
  • Notifications: Sonner

Backend & Database

  • Authentication: Supabase Auth
  • Database: Supabase PostgreSQL
  • Real-time: Supabase subscriptions
  • Storage: Supabase Storage (planned)

Development Tools

  • Package Manager: pnpm (workspace support)
  • Linting: ESLint (Next.js config)
  • Type Checking: TypeScript strict mode
  • Code Quality: Philosophy of Software Design principles

πŸ“š Documentation

🀝 Contributing

We welcome contributions! Please follow these guidelines:

  1. Code Quality: Follow the Philosophy of Software Design principles
  2. Documentation: Include comprehensive comments and documentation
  3. Testing: Write tests for new features (when testing is set up)
  4. Type Safety: Maintain strict TypeScript usage
  5. Design: Follow the established patterns and UI guidelines

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following our coding standards
  4. Test your changes thoroughly
  5. Submit a pull request with detailed description

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ™ Acknowledgments


Open Workouts - Making fitness tracking simple, transparent, and effective. πŸ’ͺ

About

Open source workout tracking web app focused on simplicity and progress visualization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors