Personal trainer digital em português para brasileiros no exterior
Um SaaS de treinamento físico que gera planos de treino personalizados e se adapta automaticamente baseado no feedback do usuário.
URL: https://fitpro.vip
Status: ✅ 100% Funcional em Produção
"Um personal trainer digital em português que monta e ajusta seu treino automaticamente"
- Multi-step form com validação Zod
- Seleção de objetivo (emagrecer/ganhar massa/manter)
- Frequência de treino (2-6x/semana)
- Equipamentos disponíveis (casa ou academia)
- Limitações físicas (lesões, dores)
- Algoritmo baseado em regras (sem ML)
- Splits inteligentes por frequência:
- 2x/semana: Full Body
- 3x/semana: Upper/Lower/Full
- 4x/semana: Upper/Lower
- 5-6x/semana: Push/Pull/Legs
- Volume adaptado por objetivo (sets/reps/rest)
- Seleção de exercícios por equipamento disponível
- Coleta de feedback após cada treino (Fácil/Ok/Difícil)
- Ajuste automático toda segunda-feira (Cron Trigger)
- 60%+ fácil → +10% volume
- 60%+ difícil → -10% volume
- Mínimo 3 feedbacks para ajustar
- Troca de 2 exercícios a cada 4 semanas (variedade)
- Instalável em mobile e desktop
- Funciona offline (service worker)
- Prompt de instalação inteligente (30s delay)
- Manifest em português
- Sistema de conquistas (badges)
- Sequência de treinos (streaks)
- Níveis de raridade (comum, raro, épico, lendário)
- Progresso visual e motivação
- Frontend: Vite 6 + React 19 + TypeScript + React Router
- Styling: Tailwind CSS + shadcn/ui
- Backend API: Cloudflare Workers + Hono
- Database: Neon Postgres (serverless)
- ORM: Drizzle ORM
- Auth: Clerk (PT-BR)
- Hosting: Cloudflare Pages
- PWA: vite-plugin-pwa
O projeto foi migrado de Next.js para Vite para:
- ✅ Compatibilidade nativa com Cloudflare Pages
- ✅ Build mais rápido (~6s vs ~20s)
- ✅ Bundle menor (316 KB gzipped)
- ✅ Sem necessidade de adaptadores (OpenNext)
- ✅ Stack mais simples e direta
fitness_pro/
├── apps/
│ ├── web/ # Vite + React + React Router (Cloudflare Pages)
│ │ ├── src/
│ │ │ ├── main.tsx # Entry point
│ │ │ ├── App.tsx # Router config
│ │ │ ├── pages/ # Páginas da aplicação
│ │ │ ├── components/ # Componentes reutilizáveis
│ │ │ └── layouts/ # Layouts (Dashboard, etc)
│ │ ├── public/
│ │ │ ├── _headers # Security headers
│ │ │ ├── _redirects # SPA redirects
│ │ │ ├── robots.txt # SEO
│ │ │ └── sitemap.xml # SEO
│ │ └── vite.config.ts
│ └── api/ # Hono API (Cloudflare Workers)
├── packages/
│ ├── database/ # Drizzle schema + migrations
│ └── shared/ # Types, constants, 30 exercícios catalogados
└── scripts/ # Seed scripts
- Node.js >= 18
- pnpm >= 9
- Git
git clone https://github.com/dkbot7/fitness-pro.git
cd fitness_pro
pnpm installcd apps/web
cp .env.example .env.localEdite .env.local:
VITE_CLERK_PUBLISHABLE_KEY=pk_test_xxxxx
VITE_API_URL=http://localhost:8787cd apps/api
cp .dev.vars.example .dev.varsEdite .dev.vars:
DATABASE_URL=postgres://user:pass@host/db
CLERK_SECRET_KEY=sk_test_xxxxxcd packages/database
# Gerar migrations
pnpm db:generate
# Aplicar migrations
pnpm db:migrate
# (Opcional) Seed de exercícios
pnpm seed# Na raiz - roda web + api simultaneamente
pnpm dev
# Ou separadamente:
pnpm --filter @fitness-pro/web dev # http://localhost:3000
pnpm --filter @fitness-pro/api dev # http://localhost:8787O deploy é automático via GitHub:
- Push para branch
main - Cloudflare Pages faz build automaticamente
- Site atualizado em ~2-3 minutos
Ou deploy manual:
cd apps/web
rm -rf dist
pnpm build
npx wrangler pages deploy dist --project-name=fitness-pro --commit-dirty=trueImportante: Para usar chaves de produção do Clerk, veja DEPLOY_PRODUCTION.md
cd apps/api
pnpm deploy- DEPLOY_PRODUCTION.md - Guia completo de deploy em produção
- CLI_CONFIG_SUMMARY.md - Configuração via CLI do Cloudflare
- PRODUCAO_COMPLETA_2026.md - Checklist completo de produção
- SETUP.md - Guia detalhado de setup local
- USER_JOURNEY.md - Jornada do usuário
- BRAND_KIT_INVENTORY.md - Assets e branding
- SPRINT1_SUMMARY.md - Foundation & Setup
- SPRINT2_SUMMARY.md - Core Features
- SPRINT2_PLAN.md - Planejamento Sprint 2
- SPRINT3_SUMMARY.md - Polish & Launch
cd packages/database
# Gerar migration após mudar schema
pnpm db:generate
# Aplicar migrations
pnpm db:migrate
# Push direto (dev only)
pnpm db:push
# Drizzle Studio (GUI)
pnpm db:studiocd apps/web
# Desenvolvimento
pnpm dev # Vite dev server (porta 3000)
# Build
pnpm build # Build para produção
# Preview
pnpm start # Preview do build localmente
# Deploy manual
pnpm cf-deploy # Build + deploy Cloudflare Pages
# PWA
pnpm generate-icons # Gerar ícones PWA do SVG
# Linting
pnpm lint # ESLint
pnpm format # Prettiercd apps/api
# Desenvolvimento
pnpm dev # Wrangler dev (porta 8787)
# Deploy
pnpm deploy # Deploy para Cloudflare Workers
# Tipos
pnpm types # Gerar tipos do DrizzleImplementados via apps/web/public/_headers:
- X-Frame-Options: DENY
- X-Content-Type-Options: nosniff
- X-XSS-Protection: 1; mode=block
- Strict-Transport-Security: max-age=31536000
- Content-Security-Policy: Configurado
- Referrer-Policy: strict-origin-when-cross-origin
- ✅ Cloudflare Universal SSL
- ✅ Always HTTPS
- ✅ Grade A+
- ✅ Meta tags completas (title, description, keywords)
- ✅ Open Graph tags
- ✅ Twitter Card tags
- ✅ robots.txt → https://fitpro.vip/robots.txt
- ✅ sitemap.xml → https://fitpro.vip/sitemap.xml
- ✅ Canonical URLs
- ✅ Manifest.json em português
- ✅ Service Worker com cache strategy
- ✅ Offline support
- ✅ Instalável (Android, iOS, Desktop)
- ✅ Icons completos (192, 512, Apple, favicons)
- ✅ Auto-update
- Setup monorepo
- Schema database completo
- Onboarding flow (4 passos)
- Geração automática de planos
- Workout display & execution
- Timer de descanso
- Sistema de feedback
- Ajuste semanal automático (cron)
- PWA completo
- Perfil de usuário
- Sistema de gamificação
- Landing page premiada
- Deploy em produção
- Error boundaries
- 404 customizada
- Security headers
- SEO (robots.txt, sitemap)
- Production deployment
- Analytics integration (PostHog)
- Error monitoring (Sentry)
- E2E testing
Para < 1000 usuários: $0-5/mês
- Cloudflare Pages: Free (Unlimited requests)
- Cloudflare Workers: Free (100k requests/day)
- Neon Postgres: Free (0.5GB)
- Clerk: Free (10k MAU)
- Week 1-2: 50%+ onboarding completion
- Week 3-4: 30%+ completam 3+ treinos/semana
- D7 retention: 40%+
- D30 retention: 20%+
- Site: https://fitpro.vip
- API: https://api.fitpro.vip
- Cloudflare Dashboard: https://dash.cloudflare.com/pages/view/fitness-pro
- GitHub: https://github.com/dkbot7/fitness-pro
- Clerk Dashboard: https://dashboard.clerk.com
- Neon Console: https://console.neon.tech
- Drizzle Studio:
pnpm db:studio(local)
Este é um projeto MVP focado em validação rápida de mercado.
Privado - Todos os direitos reservados
Última atualização: 06/01/2026 Status: ✅ Produção - 100% Funcional