Implement complete World Cup 2026 informational website with countdown, fixtures, and deployment#2
Draft
Implement complete World Cup 2026 informational website with countdown, fixtures, and deployment#2
Conversation
Co-authored-by: ppiova <7376295+ppiova@users.noreply.github.com>
Co-authored-by: ppiova <7376295+ppiova@users.noreply.github.com>
Co-authored-by: ppiova <7376295+ppiova@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Create public website for World Cup 2026 with countdown
Implement complete World Cup 2026 informational website with countdown, fixtures, and deployment
Oct 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR implements a complete, production-ready World Cup 2026 informational website as specified in the requirements. The site provides comprehensive information about the tournament including a real-time countdown, fixtures with advanced filtering, venue details, and team information.
What's New
Core Features
Real-time Countdown
aria-liveattributes for screen readersFixtures Management
Venue Information
Team Pages
Technical Implementation
Stack & Architecture
Data Structure
All tournament data is stored in validated JSON files:
Quality & Testing
CI/CD Pipeline
Automated GitHub Actions workflow that:
Accessibility & SEO
Screenshots
Homepage with Real-time Countdown

The homepage features a hero section with tournament information, a large countdown timer, quick access cards, and upcoming matches.
Fixtures Page with Interactive Filters

The fixtures page allows users to filter matches by phase and group, with real-time client-side filtering. Here showing only Group A matches after clicking the filter.
Deployment
The site is configured for automatic deployment to GitHub Pages:
maintrigger the deployment workflowSee DEPLOYMENT.md for detailed instructions.
Data Management
Update tournament data by editing JSON files in the
/datadirectory:Important Configuration Notes
2026-06-11T16:00:00Zinlib/constants.ts. This should be updated when FIFA confirms the official start date.The constant is clearly marked with a TODO comment for easy discovery:
Running Locally
Future Enhancements
The architecture supports easy extension for:
Project Structure
This implementation delivers a complete, accessible, and maintainable World Cup 2026 website ready for production deployment.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
fonts.googleapis.com/usr/local/bin/node /home/REDACTED/work/VSCodeDevDaysLatam/VSCodeDevDaysLatam/node_modules/next/dist/compiled/jest-worker/processChild.js(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
Quiero que crees una web pública centrada en el Mundial de Fútbol 2026 (fixtures, fechas, sedes/lugares y equipos). La página principal debe mostrar un countdown de días (y horas/minutos) restantes para el inicio del torneo.
Entrega el proyecto completo en un repositorio nuevo y déjalo deployado en GitHub Pages.
Objetivo y alcance
Sitio informativo con:
Inicio: hero + countdown al inicio del Mundial, CTA a fixtures, búsqueda rápida.
Fixtures: calendario por fase, grupo y fecha; detalle de partido (equipos, sede, hora local).
Sedes: lista de ciudades/estadios con ficha (capacidad, ubicación, mapa embebido opcional).
Equipos: grid por confederación/grupo con ficha de selección (bandera, plantel opcional).
Acerca/FAQ: fuente de datos, créditos y notas legales.
Idioma por defecto: español (es-AR); preparar i18n para fácil futuro soporte en inglés.
Accesible (WCAG AA), responsive (mobile-first), con buen SEO y metadatos sociales.
Requisitos técnicos
Stack: Next.js 14 (App Router) + TypeScript + TailwindCSS.
UI components accesibles (Radix/shadcn) y iconos (lucide-react).
Estado ligero con React Server Components y/o Zustand para filtros (sin overengineering).
Datos: por ahora usa archivos JSON estáticos en /data con estructura limpia; deja un README explicando cómo actualizar a una API pública más adelante.
Fecha de inicio: crea una constante TOURNAMENT_START_UTC en lib/constants.ts (ejemplo: "2026-06-XXT00:00:00Z"). Añade un TODO visible para confirmar la fecha oficial.
Countdown: componente con SSR + client hydration, tick en tiempo real cada segundo, y prueba unitaria básica.
Rutas:
/ (home con countdown)
/fixtures (lista + filtros por fase, grupo, sede, fecha; vista calendario/tabla)
/fixtures/[matchId]
/sedes y /sedes/[slug]
/equipos y /equipos/[code]
/acerca
Filtros & UX: búsqueda por equipo/ciudad/estadio; chips de fase (grupos, 16avos/8vos, cuartos, semi, 3° puesto, final); paginación o virtualización si hace falta.
Formato de fechas: mostrar en hora local del usuario con fallback a horario de la sede; usar Intl.DateTimeFormat('es-AR', …) y timeZone por sede.
Accesibilidad: contrastes, focus rings, navegación por teclado, aria-live para el countdown, alt en banderas/escudos.
SEO: next-seo, sitemap, robots.txt, Open Graph/Twitter cards, títulos y descripciones únicas.
Rendimiento: imágenes optimizadas con next/image; lazy loading donde tenga sentido; eslint, prettier.
Diseño
Look & feel limpio: tipografía sans, cards con sombras suaves y bordes rounded-2xl, layout en grid.
Paleta neutra + acentos en un color (verde/azul) y modo oscuro con class-based theming.
En home: hero con background sutil, contador grande, y tres shortcuts (Fixtures, Sedes, Equipos).
Estructura de datos (ejemplo en /data)
teams.json
[
{ "code": "ARG", "name": "Argentina", "group": "C", "confed": "CONMEBOL", "flag": "/flags/ARG.png" }
]
venues.json
[
{ "slug": "estadio-azteca", "name": "Estadio Azteca", "city": "Ciudad de México", "country": "México", "capacity": 87000, "tz": "America/Mexico_City" }
]
matches.json
[
{ "id": "mx-001", "dateUTC": "2026-06-XXT19:00:00Z", "stage": "Group A", "group": "A",
"home": "MEX", "away": "X", "venue": "estadio-azteca"
}
]
Incluye scripts de validación de schema (Zod) en scripts/validate-data.ts.
Páginas y componentes mínimos
app/page.tsx: Hero + + tarjetas de acceso rápido + “Próximos partidos”.
app/fixtures/page.tsx: tabla con filtros (fase, grupo, sede, fecha); client component para filtrado.
app/fixtures/[matchId]/page.tsx: detalle con banderas, estadio, hora local/UTC, mapa opcional (iframe).
app/sedes/page.tsx y [slug]: ficha de estadio con metadatos y lista de partidos en esa sede.
app/equipos/page.tsx y [code]: ficha de selección; lista de partidos.
app/acerca/page.tsx: fuentes, cómo actualizar datos, crédito de banderas.
components/Countdown.tsx: calcula (Días, Horas, Min, Seg) con aria-live="polite".
components/MatchCard.tsx, TeamBadge.tsx, VenueCard.tsx, FiltersBar.tsx.
Calidad, pruebas y CI
Tests: vitest + @testing-library/react para y filtrado de fixtures.
Lints: ESLint + Prettier + tsconfig estricto.
CI: GitHub Actions (Node LTS) con jobs: install → lint → typecheck → test → build → deploy (Pages).
Docs: README.md con: cómo correr, cómo editar datos, cómo publicar, cómo cambiar TOURNAMENT_START_UTC.
Deploy
Usa GitHub Pages (Next.js estático):
next.config.js con output: 'export' y images: { unoptimized: true }.
basePath si el repo no es de usuario orgánico.
Workflow pages.yml que haga next build && next export y publique ./out.
Añade un favicon y un manifest.webmanifest.
Tareas que debes ejecutar (en orden)
Crear repo nuevo world-cup-2026-web (público).
Scaffolding Next.js + TS + Tailwind.
Añadir shadcn/ui (los básicos: Card, Button, Badge, Tabs, Input).
Crear /data con los JSON de ejemplo y validadores.
Implementar rutas, component...
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.