Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

4 Commits

Folders and files

Repository files navigation

AOSSIE logo Β Β  MoveYourBody logo

MoveYourBody website badge Β  Get it on Google Play

Telegram Badge Β  X Badge Β  Discord AOSSIE Β  Discord Stability Nexus Β  LinkedIn Badge Β  Subscribe to AOSSIE Β  Subscribe to Stability Nexus


MoveYourBody Website

The official website of MoveYourBody, live at move.aossie.org.

MoveYourBody is AOSSIE's privacy-first, open-source fitness app. It builds personalized 5–7 minute micro-workouts around your goals, equipment and injuries, adapts after every session from your feedback, and runs entirely offline with on-device AI and hands-free voice control. The app itself is developed in AOSSIE-Org/MoveYourBody; this repository contains its landing page.

OpenSSF Scorecard NHS Agentic Readiness Score


πŸš€ Project's Features

What the landing page presents, taken from the app repository and its contributors:

  • Personalized workouts: sessions built from goals, fitness level, preferences, equipment and target body region.
  • Short sessions: quick 5–7 minute micro-workouts of three exercises.
  • Smart, adaptive recommendations: post-workout feedback on difficulty and intensity gradually tunes future sessions.
  • Variety engine: recently performed exercises are avoided to keep workouts fresh.
  • Safety-aware: exercises that could aggravate a stated injury are never recommended.
  • Offline, on-device AI: a quantized all-MiniLM-L6-v2 model on ONNX Runtime; data stays on the phone.
  • Voice control: start, pause, skip or repeat hands-free.
  • Plus: daily reminders, progress statistics, custom workouts, exercise search and body-focus sessions.

πŸ’» Tech Stack

Area Choice
Framework Next.js 16 (App Router, Turbopack), React 19, TypeScript
Styling Tailwind CSS v4 with semantic CSS-variable tokens
Localization next-intl - English (en) and Hindi (hi), type-checked catalogs
Theming next-themes - dark (default) and light
Motion CSS keyframes, scroll-driven animations and small IntersectionObserver hooks; lenis smooth scroll; a WebGL button
Icons lucide-react plus inline brand marks
Hosting Static export (out/) on GitHub Pages, custom domain move.aossie.org

πŸ“‹ Project Maturity Checklist

  • The project has a logo (public/brand/icons/MoveYourBody_logo.svg).
  • The project has a favicon (public/brand/icons/favicon.ico) and app icons.
  • The web frontend:
    • Has proper title and metadata (localized per language).
    • Has proper Open Graph metadata (public/brand/og-image.jpg), to ensure that it is shown well when shared in social media.
    • Has a footer and header with AOSSIE logos and social handles.
    • Uses React Server Components by default, introducing Client Components ("use client") only when interactivity or client hooks are required.
    • Is deployed to GitHub Pages via a GitHub Workflow (.github/workflows/nextjs.yml).
    • Has automated CI build and lint validation (.github/workflows/ci.yml).
    • Has automated unit and component test suite with Vitest and React Testing Library (npm test).
    • Has CodeRabbit automated AI code review (.coderabbit.yml).
    • Has open-source legal compliance (DCO.md, COPYRIGHT.md, MAINTAINERS.md).
    • Supports light and dark themes, English and Hindi, and reduced-motion preferences.

πŸš€ Website's Features

  • Award-style landing page: pointer-parallax hero with a liquid-metal WebGL download button, a scroll-lit manifesto, a bento grid of interactive feature demos (build a session, simulate voice commands, rate a workout, toggle injuries), a sticky phone that walks through the recommendation pipeline, an orbiting privacy "vault", and an open-source section with the team and contributors.
  • App screens built in code: the phone mockups recreate the app's UI in its own palette, so they stay crisp, themeable and translatable at any size.
  • Performance first: only compositor-friendly animations, off-screen work paused, no animation libraries, pre-compressed WebP/JPEG assets, and a tiny favicon.
  • Accessible: semantic landmarks, skip link, keyboard-operable demos, aria-pressed/aria-live state, and full content with reduced motion or without JavaScript.
  • Robust i18n & l10n: subpath routing (/en, /hi), Devanagari typography, and compile-time checks that every locale has every key.
  • SEO & AI readiness: per-locale canonical/alternate links, sitemap, JSON-LD (MobileApplication), web manifest, llms.txt, OpenAPI and .well-known manifests.

πŸ“‚ Project Structure

β”œβ”€β”€ .github/workflows/          # CI (lint + build), GitHub Pages deployment, merge-conflict labels
β”œβ”€β”€ next.config.ts              # Static export + next-intl plugin
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ CNAME                   # Custom domain for GitHub Pages (move.aossie.org)
β”‚   β”œβ”€β”€ .well-known/            # assetlinks.json, ai-plugin.json
β”‚   β”œβ”€β”€ api/, openapi.json      # Machine-readable project metadata
β”‚   β”œβ”€β”€ llms.txt, robots.txt
β”‚   └── brand/
β”‚       β”œβ”€β”€ Brand.md            # Brand guidelines (colours, type, assets)
β”‚       β”œβ”€β”€ og-image.jpg        # Social share card (1200Γ—630)
β”‚       β”œβ”€β”€ assets/             # hero-model.webp
β”‚       └── icons/              # Logos, favicon, app icons
└── src/
    β”œβ”€β”€ app/
    β”‚   β”œβ”€β”€ page.tsx            # Redirects / to the default locale
    β”‚   β”œβ”€β”€ sitemap.ts, manifest.ts, api/info/route.ts
    β”‚   β”œβ”€β”€ fonts/              # Self-hosted Lexend
    β”‚   └── [locale]/           # layout.tsx, page.tsx, globals.css, error.tsx, not-found.tsx
    β”œβ”€β”€ components/
    β”‚   β”œβ”€β”€ hero/               # Hero (parallax) + HeroStage
    β”‚   β”œβ”€β”€ dock/               # Dock navbar, language switcher, theme toggle
    β”‚   β”œβ”€β”€ sections/           # Manifesto, Features, HowItWorks, Privacy, OpenSource, DownloadCta, SiteFooter
    β”‚   β”œβ”€β”€ mockups/            # AppScreens: the app's screens rebuilt in code
    β”‚   β”œβ”€β”€ ui/                 # Reveal, CountUp, SpotlightGroup, PhoneFrame, SectionHeading, LiquidMetalButton, styles.ts
    β”‚   └── providers/          # Theme and Lenis providers
    β”œβ”€β”€ config/                 # languages.ts, links.ts (site URL + all external links)
    β”œβ”€β”€ i18n/                   # routing, request, navigation, metadata, typed messages
    └── messages/               # en.json, hi.json

πŸ› οΈ Usage Guide

1. Editing copy

All visible text lives in src/messages/en.json and src/messages/hi.json. Keys are type-checked: a missing Hindi key or a typo in t("...") fails npm run build.

Headlines use a <hl> tag for the accent word:

"title": "A personal coach that fits in <hl>five minutes</hl>"
t.rich("title", { hl: highlight })

2. Adding a new language

  1. Register it in src/config/languages.ts:
    { code: 'fr', name: 'French', localName: 'FranΓ§ais' },
  2. Copy src/messages/en.json to src/messages/fr.json and translate every value.
  3. Add it to messagesMap in src/i18n/messages.ts (typed as Messages, so the compiler checks it is complete) and add its Open Graph locale in src/i18n/metadata.ts.

3. Navigation

Use the locale-aware helpers from src/i18n/navigation.ts instead of next/link / next/navigation. In-page links are plain anchors (href="#features"); Lenis turns them into smooth scrolls that clear the fixed dock.

4. Theme tokens

Colours are CSS variables in globals.css, defined for :root (light) and .dark, and exposed to Tailwind through @theme:

<div className="bg-surface text-foreground-primary border border-border-subtle">
  <span className="text-highlight">Adapts to both themes</span>
</div>

Never use inline dark: utilities; add a token instead. See public/brand/Brand.md for the palette.

5. Motion

Keyframes are --animate-* tokens in globals.css. Wrap content in <Reveal> for scroll-in entrances, use motion-safe: for loops, and pause anything off screen with useInView. Read the Motion & Performance rules in AGENTS.md before adding effects.


⚑ Development and Deployment

Getting Started

npm install
npm run dev

Open http://localhost:3000. You are redirected to /en (English); /hi serves Hindi.

Running Tests

npm test

Building for Production (Static Export)

npm run build

This writes the static site to ./out. Pushing to main builds and deploys it to GitHub Pages via .github/workflows/nextjs.yml, with NEXT_PUBLIC_SITE_URL=https://move.aossie.org.

Custom domain

public/CNAME contains move.aossie.org. Point a DNS CNAME record for move at aossie-org.github.io and set the custom domain under Settings β†’ Pages of this repository.

Android App Links

public/.well-known/assetlinks.json declares org.aossie.move. Replace REPLACE_WITH_PLAY_APP_SIGNING_SHA256_FINGERPRINT with the SHA-256 fingerprint from Play Console (Setup β†’ App integrity β†’ App signing key certificate) to enable verified links.


🀝 Contributing

We welcome contributions of all kinds! Please read CONTRIBUTING.md, then:

  1. Fork the repository and create your feature branch (git checkout -b feature/AmazingFeature).
  2. Commit your changes (git commit -m 'feat: add some AmazingFeature').
  3. Ensure code quality:
    • npm run lint
    • npm test
    • npm run build
  4. Push your branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request for review.

To contribute to the app itself, visit AOSSIE-Org/MoveYourBody.

Β© 2026 AOSSIE. See COPYRIGHT.md.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages