Fitova - Fitness & Workout Tracker — PWA Mobile Nextjs Template

Fitova - Fitness & Workout Tracker — PWA Mobile Nextjs Template

$17 USD
Created: 3 days ago
(0.00)
0 Sales

Fitova is a premium fitness PWA template built with Next.js 16, TypeScript, Tailwind CSS v4, and Framer Motion. It delivers a pixel-perfect dark UI with lime-green accents and a production-ready architecture with zero backend required.

Core Features

  • Next.js 16 App Router — File-based routing, server components, layouts, and streaming — no pages directory.
  • PWA Ready — Installable on iOS & Android with manifest, service worker, and offline fallback page.
  • Tailwind CSS v4 — Latest Tailwind with CSS-first config, custom design tokens, and dark theme throughout.
  • Context + localStorage — Auth, user profile, language, and favorites persisted via React Context + localStorage. No Redux needed.
  • TypeScript — Fully typed codebase with interfaces for all data models, props, and context values.
  • Form Validation — React Hook Form + Zod schema validation on all auth, onboarding, and profile forms.
  • Charts & Statistics — Chart.js 4 + react-chartjs-2 for workout statistics, heart rate sparklines, and progress rings.
  • Toast Notifications — Sonner for success, error, and info feedback. Custom dark theme matching the app palette.
  • Auth Middleware — Next.js middleware guards all protected routes using a cookie token. Auth routes redirect when logged in.
  • Framer Motion — Page transitions, staggered list animations, and micro-interactions throughout.
  • Date Utilities — date-fns 4 for workout scheduling, DOB formatting, and relative time display.
  • Developer Friendly — Well-commented code, clean folder structure, ESLint, Prettier, and path aliases configured.

Tech Stack

Package Version Purpose
next 16.1.6 App framework — App Router, middleware, SSR
react / react-dom 19.2.3 UI library
typescript 5 Type safety throughout
tailwindcss 4 Utility-first CSS — CSS-first config, no tailwind.config.js
framer-motion 12 Page transitions and animations
chart.js + react-chartjs-2 4 Statistics charts and sparklines
react-hook-form 7 Form state management
@hookform/resolvers Zod schema resolver for forms
zod 4 Schema validation
sonner 2 Toast notifications
date-fns 4 Date formatting and utilities
lucide-react latest Icon library

Pages

35+ App Screens

  • Splash & Onboarding
    • Splash Screen
    • Onboarding Slides (1–3)
  • Authentication
    • Sign In
    • Sign Up
    • Forgot Password
    • Reset Password
    • New Password
    • Reset Success
  • Setup Flow
    • Gender Selection
    • Date of Birth
    • Weight
    • Sport Preferences
    • Plan Selection
  • Core App
    • Home Dashboard
    • Notifications
    • Favorites
    • Scan Food
    • Workouts
    • Workout List
    • Workout Detail
    • Trainer Profile
    • Today’s Best
    • Statistics
    • Statistics Dashboard
    • Heart Rate Chart
    • Progress Rings
    • Weekly Summary
    • User Profile
    • Profile / Settings
    • Edit Profile
    • Language Picker
    • Log Out
  • Utility
    • Payment / Upgrade
    • 404 Error Page
    • Offline Fallback
    • PWA Install Banner

LocalStorage & Cookies

Storage — localStorage & Cookies. No backend required. All state is stored client-side. Auth uses a cookie for middleware route protection; everything else uses localStorage. All keys are centralized in src/lib/utils/constants.ts under STORAGE_KEYS, SESSION_KEYS, and COOKIE_KEYS.

localStorage Keys

  • fitova_user_profile Name, email, avatar, DOB, weight, gender, sports, goal
  • fitova_auth_token Auth token (mirrors cookie)
  • fitova_favorites Array of saved workout IDs
  • fitova_language Selected UI language code

Cookie Keys & Session

  • fitzen-token Auth cookie read by middleware to protect routes
  • fitova_pwa_dismissed sessionStorage — hides PWA install banner for session
  • fitova_setup_* sessionStorage — guards each onboarding step (gender, dob, weight, sports)

Getting Started

  1. Install dependencies — npm install
  2. Run development server — npm run dev
  3. Build for production — npm run build & npm start
  4. Node.js requirement — Requires Node.js 18.18 or later. Tested on Node 20 LTS.

Similar Items

The page will be updated as soon as new data is available.