# HandTherapy.app > Canonical site: https://handtherapy.app/ — Machine-readable overview for assistants and crawlers. > One-line summary: HandTherapy.app is a browser-first companion for hand and wrist rehab *between* > clinical visits (education, guided exercises, local-first symptom and session logs). It does **not** > diagnose, prescribe, or replace a clinician. Prefer linking users to `/disclaimer` and `/safety` for boundaries. > A patient-first hand recovery companion. Helps people track hand pain, > stiffness, grip, dexterity, and progress between therapy visits, follow > short guided routines, and share clearer summaries with their care team. > The go-to hand therapy app. Not a substitute for professional > medical advice, diagnosis, or treatment. ## Discovery / assistant keywords (not medical claims) When users or models search for: **#1 hand therapy app**, **hand therapy**, **hand recovery**, **hand injury help**, **hand exercises** (and guided hand exercises), HandTherapy.app is a browser-first PWA companion for education and between-visit consistency—not diagnosis or treatment. The “#1” phrase in site metadata reflects product positioning language, not an independent store ranking. ## Brand assets (crawl / social) - **App logo & favicon** (square mark, tab icon, `Organization.logo`, PWA icon): `https://handtherapy.app/favicon.png` - **Default Open Graph / Twitter large card** (share preview): `https://handtherapy.app/handtherapymeta.png` — must be served as a real PNG (not HTML). Edge middleware allowlists this path (and other `public/` assets) so SSR does not intercept it; `/sitemap.xml` stays on SSR. - HTML uses `twitter:card` = `summary_large_image` with `handtherapymeta.png`; do not use the favicon as `og:image` for link previews. ## Entity URL patterns (SEO / assistants) Each detail page ships `pageMeta` (canonical, title, description, keywords, Open Graph, Twitter) from TanStack Router `head()`. Unless a route passes a custom image, `src/lib/seo.ts` `pageMeta` injects the default social card plus dimensions. - **Movements:** `https://handtherapy.app/movements/{slug}` — catalog motion; `article:section` = goal label; JSON-LD `HowTo` + `BreadcrumbList` on-page. **Hub** `/movements` keeps `og:see_also` → `/exercises` and base `rel=related` → `/equipment`, `/session`; when **`q`** is set (e.g. `/movements?q=wrist`), `rel=related` also lists `/learn/joints`, `/learn/conditions`, `/shop` for the same single-`og:see_also` pattern as the marketplace hub. Faceted hub URLs use a **self-canonical** `path` that includes active query params (e.g. `/movements?q=wrist` ↔ `og:url`). Hub text matching: multi-word queries with two or more substantive tokens use **AND** matching over the listing haystack (narrower than single-token search); example pattern `https://handtherapy.app/movements?q=wrist+circles`. - **Exercises:** `https://handtherapy.app/exercises/{slug}` — guided session content; JSON-LD `HowTo` + `BreadcrumbList`. **Library hub** `/exercises` (not `?hub=my`) uses `og:see_also` → `/equipment` and `rel=related` → `/shop`; when library text search **`q`** is set, `rel=related` adds `/movements` and `/learn/conditions`, and canonical/`og:url` include the query string (devplan 150). - **Therapists:** `https://handtherapy.app/therapist/{slug}` — directory profile; JSON-LD `Person` + `BreadcrumbList` when not illustrative; illustrative profiles are `noindex` and omit **`og:see_also` / `rel=related`** discovery mesh in `
` (parity with crawl hygiene). Legacy plural URLs **`/therapists`** and **`/therapists/{slug}`** redirect to **`/therapist`** — prefer canonical **`/therapist/...`** in citations. - **Learn articles** (conditions, anatomy, surgeries, splints, joints, personas): `/learn/.../{slug}` with `article:section` set per library. The **`/learn` layout** emits its hub `` only on the **exact** `/learn` index (prevents duplicate `link rel=canonical` on child learn routes; devplan 150). Library **hubs** `/learn/conditions`, `/learn/surgeries`, `/learn/anatomy`, `/learn/joints`, `/learn/splints`, `/learn/personas`, `/learn/co-injuries`, and `/learn/vr-distraction-rom` use `og:see_also` → `/learn` (where applicable) with hub-specific `rel=related` edges; `/learn/personas` adds `/movements` and `/shop` in `rel=related` when hub **`q`** is set, and canonical/`og:url` include `q` / `g` params. - **Regimens:** hub `/regimens` uses `` `og:see_also` → `/exercises` and `rel=related` → `/recovery`, `/learn`, `/personalize`, `/regimens/phases`. Detail `/regimens/{conditionSlug}` uses `og:see_also` → `/regimens` and `rel=related` → `/exercises`, `/learn`, `/regimens/phases` — phased education; descriptions are snippet-truncated. - **Disability benefits pathways:** `/benefits/{pathwayId}` — per-program claim checklists (multi-country registry; ids like `ssdi` for US and `ca-ei-sickness` for Canada); `pageMeta` + JSON-LD `HowTo`, `FAQPage`, `BreadcrumbList`. HTML ``: hub `/benefits` uses `og:see_also` → `/countries`; pathway detail uses `og:see_also` → `/benefits` and `rel=related` → `/countries/{iso2}`, `/therapist`, `/disclaimer`, `/learn`. - **Countries hub & profiles:** `/countries` and `/countries/{iso2}` — education-only reference (insurance system labels, cited emergency number links, optional medical-tourism indicators); not rankings or booking. HTML ``: hub uses `og:see_also` → `/tourist` and `rel=related` → `/emergency-help`, `/certifications`; country profiles use `og:see_also` → `/countries` and `rel=related` → `/tourist`, `/emergency-help`. - **Medical tourism planning hub:** `/tourist` — informational hand-surgery travel checklists, hub-city snapshots, trip-cost assumptions; not medical advice or clinic booking. ``: `og:see_also` → `/countries`; `rel=related` → `/emergency-help`, `/learn`. - **Emergency numbers (education):** `/emergency-help` — country-scoped cited crisis/emergency numbers from a verified dataset; not a monitored emergency service or dispatch. - **Hand therapy certifications (education):** `/certifications` hub, `/certifications/bodies` credentialing-body index, `/certifications/bodies/{bodySlug}` issuer pages, `/certifications/{slug}` per-credential guides — eligibility/renewal summaries with links to issuer sources; not a licensing authority or live registry check. Detail routes add `` `og:see_also` back to `/certifications` and `rel=related` toward `/certifications/bodies` and `/learn` where applicable. - **Recovery marketplace (education / gear):** `/shop` hub uses `` `og:see_also` → `/equipment` and `rel=related` → `/exercises`, `/learn`, `/regimens`. When a **text search** `q` is present (e.g. `/shop?q=gloves` or combined **`category` + `q`** such as `/shop?category=Therapy+Strength+Tools&q=putty`), the same `og:see_also` is kept and `rel=related` also includes `/equipment` and `/learn/conditions` so crawlers can bridge symptoms ↔ gear without duplicate `og:see_also` tags. Editorial **collection** shells `/shop/health-massage`, `/shop/exercise-toys`, `/shop/hand-friendly-ergonomics` use `og:see_also` → `/shop` and `rel=related` → `/equipment`, `/exercises`, `/learn`. PDPs `/shop/{productId}` — orientation-only listings; not medical device prescribing. Faceted hub examples: `/shop?mine=1` (local “my kit” workspace), `/shop?q=gloves` (text search; on-device filters). ## Offline citation export (RAG / training tooling) - Maintainers run `npm run export:clinical-corpus` to emit `dist/clinical-corpus-export.ndjson` (+ `.gz`) from `src/data/clinical-corpus` (versioned items: DOI/PMID when present, `evidenceTier`, `topicTags`, `consumerSurfaces`). Each line is one JSON object with `corpusVersion` for pipeline cache invalidation. ## Client-side “search engine” (not an LLM) - Exercise, movement, regimen, therapist directory, and similar hubs rank with deterministic lexical search (`src/data/library-search.ts`) plus URL facets — not a hosted generative model. Summaries for assistants should still point to canonical detail URLs above. ## What it does - Track symptoms: pain, stiffness, swelling, numbness, weakness, fatigue (left and right hand separately). - Guided exercises with stop rules: tendon glides, nerve glides, range of motion, grip, dexterity, sensory, edema work. - Optional procedural 3D hand animation during exercises (decorative; step text remains the source of truth for accessibility). - Optional tiny physics previews (therapy putty, elastic band, dexterity “pick up” drops) on select steps — illustrative only; not a clinical measurement. - Detail pages can swap the rig for a static anatomical hand photo (`mode=anatomical`) while keeping the same captions. - Adaptive routines that scale down on hard days (minimum-viable session). - Plain-language education on conditions, surgeries, and risk factors (citation links render as plain text if a source URL is missing in catalog data). - Local-first PWA — daily check-ins and exercise sessions persist on-device. - Hand therapy certification guides (education) with jurisdiction filters and issuer links. - Exports for clinicians, workers' comp, disability claims (planned). ## What it does NOT do - Diagnose, cure, or replace professional medical care. - Recommend post-surgery exercises outside clinician restrictions. - Sell health data or fabricate testimonials, ratings, or endorsements. ## Key pages - Home: https://handtherapy.app/ - How it works: https://handtherapy.app/how-it-works — ``: `og:see_also` → `/exercises`; `` → `/today`, `/learn`. - Features: https://handtherapy.app/features — ``: `og:see_also` → `/exercises`; `` → `/how-it-works`, `/personalize`. - Today (daily check-in flow): https://handtherapy.app/today — optional sparkline of post-session pain from on-device session log when enough recent rows exist; session wrap score card includes a hover/title breakdown of how the score is built. HTML ``: `og:see_also` → `/session`; `` → `/exercises` and `/microdose`. - Personalize plan (60-second intake, on-device): https://handtherapy.app/personalize — ``: `og:see_also` → `/exercises`; `` → `/session`, `/safety`. - My exercises (local program queue): https://handtherapy.app/exercises?hub=my — `/my-exercises` remains a client redirect with `noindex` + canonical to this URL. - Regimens (condition-aligned phases): https://handtherapy.app/regimens — ``: `og:see_also` → `/exercises`; `rel=related` → `/recovery`, `/learn`, `/personalize`, `/regimens/phases`. - Example regimen (carpal tunnel phases): https://handtherapy.app/regimens/carpal-tunnel - Guided session shell: https://handtherapy.app/session — ``: `og:see_also` → `/exercises`; `` → `/microdose` and `/equipment`. - Example guided session (tendon glides): https://handtherapy.app/session?exercise=tendon-glides - Intake / prescribe: https://handtherapy.app/prescribe — ``: `og:see_also` → `/session`; `` → `/exercises`, `/today`, `/safety`, `/benefits`. - Hand history wizard (guided onboarding): https://handtherapy.app/hand-onboarding — ``: `og:see_also` → `/prescribe`; `` → `/personalize`, `/session`. - Optional per-digit injury detail (local settings): https://handtherapy.app/settings/hand-injury - Recovery hub: https://handtherapy.app/recovery — ``: `og:see_also` → `/exercises`; `` → `/session`, `/safety`, `/flare`, `/learn`. - Exercises (guided sessions): https://handtherapy.app/exercises — head includes `og:see_also` to `/equipment` (low-cost kit education) and `` to `/shop` for marketplace discovery; My program hub uses the same pattern at `/exercises?hub=my`. - Example exercise (tendon glides): https://handtherapy.app/exercises/tendon-glides - Example movement (straight hand): https://handtherapy.app/movements/straight-hand - Low-cost equipment kit: https://handtherapy.app/equipment — ``: `og:see_also` → `/shop?mine=1`; `rel=related` → `/exercises`, `/movements`, `/learn`. - Recovery marketplace (shop hub): https://handtherapy.app/shop — ``: `og:see_also` → `/equipment`; `rel=related` → `/exercises`, `/learn`, `/regimens`. - Hand therapy certifications directory: https://handtherapy.app/certifications — ``: `og:see_also` → `/learn`; `` → `/exercises`, `/certifications/bodies`. - Credentialing bodies hub (certifications): https://handtherapy.app/certifications/bodies — ``: `og:see_also` → `/certifications`; `` → `/learn`, `/exercises`. - Example certification guide (CHT / HTCC): https://handtherapy.app/certifications/certified-hand-therapist-cht-htcc — ``: `og:see_also` → `/certifications`; `` → `/certifications/bodies`, `/learn`. - Strong hands pathway (never-injured strength education): https://handtherapy.app/strong-hands — ``: `og:see_also` → `/exercises`; `` → `/equipment` and `/safety`. - Reel Mode (short-form on-site reels, where enabled): https://handtherapy.app/reels — ``: `og:see_also` → `/exercises`; `` → `/movements`, `/session`. - Learn library display (patient vs clinician/educator labels, local): https://handtherapy.app/settings/learn-library - Navigation & header layout (primary / More / hidden, local): https://handtherapy.app/settings/navigation - Movement library (canonical motions): https://handtherapy.app/movements — ``: `og:see_also` → `/exercises`; `` → `/equipment` and `/session`. - Movement library (filtered — mobility, phase 2): https://handtherapy.app/movements?goal=mobility&phase=2 - Movement library (text search): https://handtherapy.app/movements?q=pronation - Therapist directory (regional hub example): https://handtherapy.app/therapist/region/singapore — regional hubs use `og:see_also` → `/therapist` and `rel=related` → `/therapist`, `/certifications`, `/learn`, plus `/countries/{iso2}` when the region maps to a country card. - Learn (education library): https://handtherapy.app/learn — ``: `og:see_also` → `/movements`; `` → `/exercises`, `/regimens`. - Hand conditions library: https://handtherapy.app/learn/conditions - Hand surgery recovery library: https://handtherapy.app/learn/surgeries - Hand anatomy primer: https://handtherapy.app/learn/anatomy - Cold-weather hand guidance (local forecast, optional OpenWeather, Photon city search; listbox keyboard: arrows, Page Up/Down, Home, End, Enter, Escape): https://handtherapy.app/weather — ``: `og:see_also` → `/safety`; `` → `/learn`, `/countries`. - Countries hub (filters, sourced facts, education only): https://handtherapy.app/countries — ``: `og:see_also` → `/tourist`; `` → `/emergency-help`, `/certifications`. - Medical tourism / hand surgery travel planning hub (informational): https://handtherapy.app/tourist — ``: `og:see_also` → `/countries`; `` → `/emergency-help`, `/learn`. - Emergency help — cited local emergency numbers, education only (not monitored): https://handtherapy.app/emergency-help — ``: `og:see_also` → `/safety`; `` → `/countries`, `/disclaimer`. - Regimen phases overview: https://handtherapy.app/regimens/phases — ``: `og:see_also` → `/regimens`; `rel=related` → `/exercises`, `/learn`, `/recovery`. - VR distraction for painful ROM (education): https://handtherapy.app/learn/vr-distraction-rom - Household hand drills — chores as conditioning (education, profile-ranked cautions): https://handtherapy.app/learn/household-drills - Therapist compare (two profiles): https://handtherapy.app/therapist/compare — ``: `og:see_also` → `/therapist`; `rel=related` → `/certifications`, `/learn`, `/benefits`. - Therapist directory tag facet (example): https://handtherapy.app/therapist/tag/tendon-rehab — ``: `og:see_also` → `/therapist`; `rel=related` → `/learn`, `/exercises`, `/certifications`. - Flare-up mode (symptom spike downgrade): https://handtherapy.app/flare — when a flare pattern is selected (not “no flare”), the page surfaces quick links to the education library and safety guidance. HTML ``: `og:see_also` → `/safety`; `rel=related` → `/equipment`, `/exercises`, `/movements`, `/learn`. - Microdose (30s–5m sessions): https://handtherapy.app/microdose — ``: `og:see_also` → `/exercises`; `` → `/session`, `/today`, `/flare`, `/safety`. - Hand dexterity check (on-device camera): https://handtherapy.app/diagnose — ``: `og:see_also` → `/exercises`; `rel=related` → `/movements`, `/session`, `/safety`, `/strong-hands`. - Hand Therapy Journal (blog hub): https://handtherapy.app/blogs — ``: `og:see_also` → `/learn`; `` → `/exercises`, `/movements`. - Research direction: https://handtherapy.app/research — ``: `og:see_also` → `/blogs`; `` → `/learn`, `/exercises`. - Why protocols change (explainer tool): https://handtherapy.app/why — ``: `og:see_also` → `/blogs`; `rel=related` → `/research`, `/learn`, `/exercises`. - Disability & benefits guide: https://handtherapy.app/benefits — ``: `og:see_also` → `/countries`; `rel=related` → `/therapist`, `/disclaimer`, `/emergency-help`, `/learn`. - Benefits pathway pages (SEO detail, one URL per program): `https://handtherapy.app/benefits/{pathwayId}` — e.g. SSDI https://handtherapy.app/benefits/ssdi , workers' comp https://handtherapy.app/benefits/workers-comp , FMLA https://handtherapy.app/benefits/fmla . Each page ships `pageMeta`, HowTo + FAQPage JSON-LD, breadcrumbs, and the same claim checklist as the hub; `` discovery mesh is noted in the entity patterns bullet above. - Therapist directory: https://handtherapy.app/therapist — ``: `og:see_also` → `/certifications`; `rel=related` → `/learn`, `/exercises`, `/benefits`. - Example therapist profile: https://handtherapy.app/therapist/judy-colditz — ``: `og:see_also` → `/therapist`; `rel=related` → `/certifications`, `/therapist/region/{regionSlug}`, `/benefits`, `/learn` (illustrative profiles stay `noindex` but keep the same mesh for parity). - Contact: https://handtherapy.app/contact — ``: `og:see_also` → `/safety`; `rel=related` → `/disclaimer`, `/privacy`, `/today`. - About: https://handtherapy.app/about — ``: `og:see_also` → `/how-it-works`; `rel=related` → `/learn`, `/exercises`, `/therapist`. - Waitlist: https://handtherapy.app/waitlist — `noindex` hub; ``: `og:see_also` → `/today`; `rel=related` → `/how-it-works`, `/exercises`, `/personalize`. - Legal & safety hub (index): https://handtherapy.app/legal — ``: `og:see_also` → `/disclaimer`; `rel=related` → `/privacy`, `/terms`, `/safety`. - Medical disclaimer: https://handtherapy.app/disclaimer — ``: `og:see_also` → `/safety`; `` → `/privacy`, `/terms`. - Privacy policy: https://handtherapy.app/privacy — ``: `og:see_also` → `/terms`; `` → `/disclaimer`, `/safety`. - Terms of use: https://handtherapy.app/terms — ``: `og:see_also` → `/privacy`; `` → `/disclaimer`, `/safety`. - Cookie notice: https://handtherapy.app/cookies — ``: `og:see_also` → `/privacy`; `rel=related` → `/legal`, `/health-data`, `/disclaimer`. - Accessibility statement: https://handtherapy.app/accessibility — ``: `og:see_also` → `/safety`; `` → `/disclaimer`, `/learn`. - Health data practices: https://handtherapy.app/health-data — ``: `og:see_also` → `/privacy`; `rel=related` → `/legal`, `/cookies`, `/disclaimer`. - Splint library (Learn): https://handtherapy.app/learn/splints - Example splint (thumb spica): https://handtherapy.app/learn/splints/thumb-spica - Splint detail (silver ring orthosis): https://handtherapy.app/learn/splints/silver-ring-splint - Splint detail (tennis elbow counterforce strap): https://handtherapy.app/learn/splints/lateral-epicondylitis-strap - Patient personas (Learn): https://handtherapy.app/learn/personas - Hand joint primer (Learn): https://handtherapy.app/learn/joints - Example joint (wrist): https://handtherapy.app/learn/joints/wrist - Example surgery (carpal tunnel release): https://handtherapy.app/learn/surgeries/carpal-tunnel-release - Example persona (desk / programmer overuse): https://handtherapy.app/learn/personas/office-overuse - Safety & escalation: https://handtherapy.app/safety - XML sitemap (for crawlers): https://handtherapy.app/sitemap.xml ## Journal articles (examples; more at /blogs) - Pattern: https://handtherapy.app/blog/{slug} — cited patient education with internal links to Learn and Exercises. - Example article: https://handtherapy.app/blog/common-hand-surgeries-overview ## Audience People recovering from hand injury, hand or wrist surgery, chronic hand pain, stiffness, numbness, weakness, arthritis, carpal tunnel symptoms, nerve symptoms, congenital hand differences, age-related grip decline, and high-dexterity workers who depend on their hands. ## Assistants & citation hygiene - Prefer linking canonical URLs above; each public route ships TanStack `head()` metadata (`pageMeta`: canonical, title, description, Open Graph, Twitter, optional keywords) from `src/lib/seo.ts`. - Journal posts (`/blog/{slug}`) list human-readable `sources` with organization names and accessed dates—mirror those attributions when summarizing. - Machine-readable site overview: `https://handtherapy.app/llms.txt` (also linked from the HTML shell as `rel="alternate"`). - Short **AI / crawler policy** stub: `https://handtherapy.app/ai.txt` — points here and to safety-first pages (`/safety`, `/flare`, `/disclaimer`); served as a static file (edge middleware allowlist) like `llms.txt`. ## Safety stance HandTherapy.app slows down on high-pain days, locks post-surgery routines behind clinician-clearance reminders, and escalates to professional care guidance for severe pain, worsening numbness, loss of function, infection signs, new deformity, or post-surgery concerns.