smooth-app
A collaborative, free and open database of ingredients, nutrition facts and information on food products from around the world
Rehab routines your patients can open with one link.
HealthTypeScript · CSSGitHub @jopealgortaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Rehab routines your patients actually open. Physiotherapists manage customers and injury
cases, build routines and weekly plans from their own exercise library (videos, categories,
body areas), and share them through a clean link, with no patient account needed. Patients can
follow a guided workout, log sessions and pain, and download a branded PDF.
Status: sign-in, onboarding and profile (spec 01) are built. Features are specified in
docs/specs/ and built one per session.
Requirements: Node 24 (see .nvmrc), pnpm 10, Docker (for local Supabase).Read the full README ↗Rehab routines your patients actually open. Physiotherapists manage customers and injury cases, build routines and weekly plans from their own exercise library (videos, categories, body areas), and share them through a clean link, with no patient account needed. Patients can follow a guided workout, log sessions and pain, and download a branded PDF.
Status: sign-in, onboarding and profile (spec 01) are built. Features are specified in
docs/specs/and built one per session.
Next.js 16 (App Router) · TypeScript · Tailwind CSS v4 · shadcn/ui · Supabase (Postgres, Auth,
Storage) · Drizzle ORM · next-intl · Vitest · Playwright. See
docs/architecture.md.
Requirements: Node 24 (see .nvmrc), pnpm 10, Docker (for local Supabase).
pnpm install
pnpm db:start # local Supabase in Docker
cp .env.example .env.local
# Copy PUBLISHABLE_KEY and SECRET_KEY from `pnpm exec supabase status -o env` into
# NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY and SUPABASE_SECRET_KEY in .env.local
pnpm dev # http://localhost:3000, sign-in emails land in Mailpit (http://127.0.0.1:54324)
| Script | What it does |
|---|---|
pnpm dev / build / start | Next.js |
pnpm check | Lint, typecheck, Prettier check, unit tests |
pnpm test / test:watch | Vitest |
pnpm test:int | Integration tests against local Supabase (RLS, triggers, queries) |
pnpm test:e2e | Playwright (desktop + mobile), builds and serves on port 3100 |
pnpm db:start / db:stop / db:reset | Local Supabase |
pnpm db:generate | Generate a migration from the Drizzle schema |
pnpm db:studio | Drizzle Studio |
Vercel deploys main to production through its GitHub integration. vercel.json turns off
deployments for every other branch: there is no separate preview database, and the env vars
are set for Production only. Set them in Vercel from .env.example, with DATABASE_URL on
Supabase's transaction pooler (port 6543). NEXT_PUBLIC_* values are inlined at build time, so
redeploy after changing one.
Local config lives in supabase/config.toml; a hosted project needs the same settings in the
dashboard:
migrate job in .github/workflows/ci.yml applies pending migrations on
every push to main, after all checks pass (it does nothing when none are pending). One-time
setup: create a GitHub environment named production and add a SUPABASE_DB_URL secret to
it, using the session pooler connection string (Project Settings → Database → Connection
string, port 5432, user postgres.<ref>, password percent-encoded). The direct host is
IPv6-only and the transaction pooler (6543) can't run migrations. The first run also creates
the auth.users trigger that gives every new user a physios row. To apply by hand:
pnpm exec supabase db push --db-url "<session pooler url>". Vercel deploys main in parallel,
so keep migrations additive (see docs/architecture.md).<app URL>/auth/** to the
redirect URLs. A missing redirect URL breaks magic links (they fall back to the Site URL).supabase/templates/magic_link.html into both "Magic
Link" and "Confirm signup", and set both subjects to
Tu link para ingresar · Your sign-in link — Physio Trainer (the subjects in
supabase/config.toml only apply locally). Re-paste whenever the template changes (it
became bilingual in spec 17).NEXT_PUBLIC_AUTH_EMAIL_ENABLED=false (with Google enabled) to hide the magic-link form.NEXT_PUBLIC_AUTH_GOOGLE_ENABLED=true in the app's environment.docs/architecture.md: decisions, domain model, security model, conventionsdocs/specs/: feature specs and build orderCLAUDE.md: working agreements for AI-assisted development