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