Physical Exercise Helper

Home

Physical Exercise Helper

Track your progress on walking, calisthenics, and more. Offline-capable and no login required.
Next.js
16.1
React
19.2
Ant Design
6.0
TanStack Query
5.x

Your Pages

Active
Add your own pages and list them here
Physical

Walking

Track walking progress: steps, distance, duration, and build a consistent habit.
Explore
Physical

Calisthenics

Track strength and skill progress with bodyweight exercises, sets, and reps.
Explore

Example Pages

Keep these
Reference implementations for data fetching, offline state, components, and links. Keep them for context when building new pages.
Example
TanStack Query

Data Fetching

Fetch real-time data from external APIs. Example with tide data that refreshes automatically.
Explore
Example
Persistence

Offline State

Persist state to localStorage with TanStack Query. Works offline and syncs when back online.
Explore
Example
Ant Design 6

Components

Showcase of Ant Design components. Buttons, forms, tables, modals, and more.
Explore
Example
Template

Links

A beautiful Linktree-style page to showcase your links and social media profiles.
Explore

How to add a new page

Quick start
Follow these steps to add your own pages to the app
Step 1: Create your page
Create a new folder in src/app/your-page-name/ with a page.tsx file. All pages must be client components.
// src/app/my-page/page.tsx
"use client";
import React from "react";
import { Typography, Card } from "antd";

const { Title } = Typography;

export default function MyPage() {
  return (
    <div style={{ padding: 24 }}>
      <Title>My Page</Title>
      <Card>{/* Your content */}</Card>
    </div>
  );
}

Project structure

src/
├── app/                    # Next.js App Router pages
│   ├── api/               # API routes (backend)
│   ├── [page-name]/       # Your pages go here
│   │   └── page.tsx       # Page component
│   └── layout.tsx         # Root layout with AppShell
├── components/            # Reusable UI components
├── hooks/                 # Custom React hooks
├── services/              # API/data fetching logic
├── config/                # Static configuration
│   └── routes.ts         # Route definitions (add isExample for demo pages)
└── types/                 # TypeScript types