← index

README

README.md

Metabolics.app

Plataforma de nutrición para profesionales en Chile y Cono Sur.

Software para nutricionistas: gestión de pacientes, planificación alimentaria, agenda, pagos, comunicación, gamificación y página web del profesional — todo en un solo lugar.

Estado: MVP en construcción · dominio metabolics.app aún no conectado.

Stack

  • SvelteKit 2 + Svelte 5 (runes) + TypeScript
  • Tailwind CSS 4 + shadcn-svelte (bits-ui)
  • PostgreSQL (Supabase local) + Drizzle ORM
  • Supabase Auth vía @supabase/ssr
  • Resend para email transaccional
  • Umami para analytics self-hosted
  • pnpm como package manager

Setup local

# 1. Instalar dependencias
pnpm install

# 2. Arrancar Supabase local (Postgres + Auth + Studio)
pnpm supabase:start

# 3. Configurar variables de entorno
cp .env.example .env
# Pegar los valores de `pnpm supabase:status` en .env

# 4. Crear las tablas en la BD
pnpm db:push

# 5. (Opcional) Resetear BD con datos seed
pnpm supabase:reset

# 6. Arrancar dev server
pnpm dev

Abrir http://127.0.0.1:5173

Otras herramientas útiles:

Scripts

pnpm dev                # dev server
pnpm build              # build de producción
pnpm preview            # preview del build
pnpm check              # typecheck (svelte-check)

pnpm db:generate        # generar migración desde schema
pnpm db:migrate         # aplicar migraciones
pnpm db:push            # push directo a BD (dev)
pnpm db:studio          # Drizzle Studio GUI
pnpm db:seed            # seed data

pnpm supabase:start     # arrancar Supabase local
pnpm supabase:stop      # parar Supabase local
pnpm supabase:status    # ver puertos y keys
pnpm supabase:reset     # resetear BD + seed

pnpm format             # prettier
pnpm format:check       # prettier --check

Estructura

src/
├── routes/
│   ├── (marketing)/        # landing, /pricing, /about — públicos
│   ├── (app)/              # panel nutricionista (auth + role=nutritionist)
│   ├── (patient)/          # app del paciente (auth + role=patient)
│   └── auth/               # login, signup, callback, logout
├── lib/
│   ├── components/ui/      # shadcn-svelte (button, card, input, ...)
│   ├── modules/            # los 9 módulos feature-based
│   ├── services/           # cross-cutting (auth, email)
│   ├── server/             # server-only (db, supabase)
│   └── utils/              # helpers
supabase/                   # Supabase local config + seed + RLS
drizzle/                    # migrations generadas
docs/                       # documentación

Documentación

Archivo Contenido
CLAUDE.md Contexto para Claude Code, stack, convenciones
docs/MVP.md Especificación completa del MVP
docs/ARCHITECTURE.md Arquitectura del sistema
docs/MODULES.md Cómo agregar un módulo nuevo
docs/DATABASE.md Schema de BD y migraciones
docs/DEVELOPMENT.md Workflow de desarrollo
docs/DEPLOY.md Deploy a producción (Coolify)
docs/DESIGN-SYSTEM.md UI / design system
vps-coolify-setup.md Setup del VPS

Licencia

Privado · Todos los derechos reservados.