Running Days Docs
GitHub

Running Days Documentation

Welcome to the Running Days documentation. Running Days is a fitness tracking application that counts unique running days toward a yearly goal.

Philosophy

Running Days emphasizes sustainable consistency over fragile streaks. Missing a day doesn’t reset your progress - every run counts toward your yearly goal. Whether you aim for 100 days, 200 days, or the default 300 days, the app tracks your progress and celebrates your achievements.

Quick Navigation

Key Features

FeatureDescription
Year-Long GoalsSet and track progress toward running a target number of days per year
Apple Health SyncAutomatic workout import via Health Auto Export app
Streak TrackingCurrent streak, longest streak, and streak history
AchievementsMilestone celebrations at 50, 100, 150, 200, 250, 300 days
InsightsMonthly breakdowns, pace trends, and distance analytics

Tech Stack

LayerTechnology
FrontendSvelteKit 2, Svelte 5 (runes), Tailwind CSS 4
BackendFastify 5, TypeScript
DatabaseSQLite/PostgreSQL, Drizzle ORM
iOSSwift, SwiftUI, HealthKit
Monorepopnpm workspaces + Turborepo

Project Structure

text
running-days/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ api/         # Fastify REST API
β”‚   β”œβ”€β”€ web/         # SvelteKit dashboard
β”‚   β”œβ”€β”€ oss/         # Self-hosted version
β”‚   └── ios/         # Native iOS app
β”‚
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ types/       # Shared TypeScript types
β”‚   β”œβ”€β”€ utils/       # Utilities and formatters
β”‚   β”œβ”€β”€ database/    # Drizzle ORM schema
β”‚   └── business-logic/  # Core algorithms
β”‚
└── infrastructure/
    β”œβ”€β”€ docker/      # Dockerfiles
    └── observability/  # Grafana, Prometheus, Loki

Getting Help