Tactical Barbell Tracker - A modern Svelte 5 application for tracking strength training, cardio workouts, and training blocks following the Tactical Barbell methodology. Built with TypeScript and Vite, ready for deployment on Cloudflare Pages.
Clone the repository:
git clone https://github.com/Bruno-366/Unbroken.git
cd Unbroken
Install dependencies:
npm install
Start the development server:
npm run dev
Open your browser and navigate to http://localhost:5173
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production build locallynpm run lint
- Run ESLintnpm run lint:fix
- Run ESLint with auto-fixnpm run type-check
- Run Svelte type checkingConnect Repository to Cloudflare Pages:
Bruno-366/Unbroken
repositoryConfigure Build Settings:
None
(or Vite
if available)npm run build
dist
/
(leave empty)18
or higherEnvironment Variables (if needed):
Deploy:
Build the project locally:
npm run build
Upload the dist
folder contents to Cloudflare Pages using:
npx wrangler pages deploy dist
Unbroken/
āāā public/ # Static assets
āāā src/ # Source code
ā āāā components/ # Svelte components (refactored from monolithic App.svelte)
ā ā āāā CardioWorkouts.svelte # LISS and HIIT workout rendering
ā ā āāā StrengthWorkouts.svelte # Strength/hypertrophy workouts with warm-up sets
ā ā āāā RestWorkouts.svelte # Rest and deload workout rendering
ā ā āāā History.svelte # Workout history display
ā ā āāā TrainingPlan.svelte # Training blocks drag & drop management
ā ā āāā ExerciseDatabase.svelte # 1RM and 10RM exercise input management
ā ā āāā RestTimer.svelte # Rest timer with visual feedback
ā ā āāā ResetProgress.svelte # Reset confirmation modal
ā āāā App.svelte # Main App component with reactive state management
ā āāā types.ts # Centralized TypeScript interfaces and types
ā āāā utils.ts # Shared utility functions (weight calculations, notifications)
ā āāā blockTemplates.ts # Training block templates and configurations
ā āāā main.ts # Entry point
ā āāā app.css # Global styles with Tailwind CSS
āāā .github/ # GitHub Actions workflows
āāā dist/ # Build output (generated)
āāā index.html # HTML template
āāā package.json # Dependencies and scripts
āāā tsconfig.json # TypeScript configuration
āāā vite.config.ts # Vite configuration
āāā wrangler.jsonc # Cloudflare Pages configuration
āāā tailwind.config.js # Tailwind CSS configuration
āāā postcss.config.js # PostCSS configuration
āāā svelte.config.js # Svelte configuration
āāā .eslintrc.cjs # ESLint configuration
The application has been built with Svelte 5's modern reactive architecture using runes for state management:
The repository includes GitHub Actions workflow that runs on every push and pull request:
src/index.css
to customize Tailwind configurationsrc/index.css
if needed# Example: Add a UI library (compatible with Tailwind and Svelte)
npm install @floating-ui/dom
# Example: Add routing (for multi-page functionality)
npm install svelte-spa-router
# Example: Add form handling and validation
npm install felte @felte/validator-zod zod
# Example: Add state management (if needed for larger scale)
npm install svelte/store
# Example: Add date/time utilities
npm install date-fns
tailwind.config.js
to extend the theme, add custom colors, or configure pluginssrc/app.css
Create .env
files for different environments:
.env.local
- Local development.env.production
- Production buildsgit checkout -b feature-name
npm run lint && npm run type-check && npm run build
git commit -m 'Add feature'
git push origin feature-name
This project is open source and available under the MIT License.