BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Plataforma deportiva: noticias, calendario y resultados en vivo, rankings, predicciones y minijuegos. Producción: · Deploy: Vercel, automático en cada push a main. Hace falta un .env.local con unas 25 variables (Sanity, Supabase, claves de deportes, VAPID de notificaciones). No hay fichero de ejemplo publicado porque varias son secretas; pídeselas a quien mantiene el proyecto. Sin .env.local la web arranca, pero las páginas que leen Sanity o Supabase fallarán.查看完整 README ↗
Plataforma deportiva: noticias, calendario y resultados en vivo, rankings, predicciones y minijuegos.
Producción: https://www.takasportsmedia.com · Deploy: Vercel, automático
en cada push a main.
| Framework | Next.js 16 (App Router) · React 19 · TypeScript |
| Estilos | Tailwind 4 |
| Contenido | Sanity (noticias y reportajes) |
| Datos | Supabase (Postgres + Auth) |
| Deportes | ESPN (gratis) y api-sports.io (cuota corta) |
| Pruebas | Vitest — 1.250 en 89 ficheros |
| Tamaño | 68 páginas · 151 rutas de API · 28 tareas programadas |
npm install && npm run dev
Hace falta un .env.local con unas 25 variables (Sanity, Supabase, claves de
deportes, VAPID de notificaciones). No hay fichero de ejemplo publicado porque
varias son secretas; pídeselas a quien mantiene el proyecto.
Sin .env.local la web arranca, pero las páginas que leen Sanity o Supabase
fallarán.
| Orden | Qué hace |
|---|---|
npm run dev | Servidor de desarrollo en el 3000 |
npm run build | Build de producción. Valida tipos y lint: nada se commitea sin que pase |
npm test | Vitest, una pasada |
npm run rankings:sync | Baja los rankings de la base de datos |
⚠️ No levantes dos servidores de desarrollo en esta misma carpeta: comparten
.next y todas las rutas de API empiezan a responder 404. Si necesitas otro, usa
un worktree de git aparte.
src/
├── app/ rutas (App Router). Cada carpeta es una URL
│ ├── api/ 151 rutas de servidor: eventos, predicciones, rankings, juegos, crons
│ ├── partido/ ficha de partido — la pantalla más grande y más visitada
│ └── admin/ panel interno, protegido
├── components/ React reutilizable
└── lib/ lógica de negocio, clientes y tipos
src/lib/types.tssrc/lib/constants.ts, src/lib/sports.tssrc/lib/rankings.ts (espejo del trigger SQL)next.config.ts → images.remotePatternsLas noticias no se escriben aquí. Vienen de un pipeline de n8n que vive en
otro repo (taka-system), pasa por Supabase y se publica en Sanity; esta web
solo lee. El título SEO lo rellena aparte /api/cron/seo-title.
'use client' solo si necesita estado.<DynamicImage>, nunca <Image> a pelo.timeAgo() y formatInTimezone(), que respetan el huso del visitante.useMounted(). Costó once páginas repintándose enteras..env.local.next start no comprime y miente por ocho.CLAUDE.md — guía larga del repo (tablas de Supabase, límites de cada API…)CHANGELOG.md — qué ha cambiado y cuándo