Introduction
Health Tracker is a personal health tracking application built with Leptos and Axum.
The problem
Health data is scattered across apps, devices, and spreadsheets. You want a single place to track your metrics, but existing tools are either too complex or too rigid.
The solution
A self-hosted web application that lets you log, visualize, and analyze your health data on your own terms. Built with Rust for performance and reliability, with a responsive Leptos frontend.
How it works
Health Tracker uses SSR + hydration for fast initial loads and smooth client-side interactivity:
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Browser │────▶│ Axum Server │────▶│ SQLite │
│ (Leptos) │◀────│ (SSR + API) │◀────│ (Storage) │
└─────────────┘ └──────────────┘ └─────────────┘
Key technologies
| Component | Technology |
|---|---|
| Framework | Leptos 0.8 (full-stack Rust) |
| Server | Axum |
| Build | cargo-leptos |
| Storage | SQLite (via sqlx) |
| Styling | SCSS |
| API | OpenAPI/Swagger (utoipa) |
| Validation | validator (derive) |
Architecture
Single-crate workspace with feature-gated compilation:
src/main.rs— Axum server entry (ssrfeature)src/lib.rs— WASM hydration entry (hydratefeature)src/app.rs— Shared components and routessrc/api/mod.rs— Leptos#[server]functions for UI-driven data flowsrc/server/api/— REST API for external consumerssrc/shared/— Framework-agnostic domain types and validationmigrations/— SQLx migration files
Next steps
- Quick Start: Get running in 5 minutes
- Architecture: Understand the system design
- Configuration: Customize settings