Fiestas Valladolid 2026 es la agenda web de las Fiestas y Ferias de Valladolid, creada por vecinos voluntarios de Aldea Pucela.
La web de producción concentra el programa en una experiencia sencilla para consultar qué ocurre cada día, dónde, cómo llegar y qué actividades merece la pena guardar.
Las tres pantallas principales de la aplicación:
Agenda![]() |
Mapa![]() |
Plan vecinal![]() |
La aplicación permite:
Los favoritos y planes personales se guardan localmente en el navegador. No requieren cuenta y no se sincronizan con un servidor.
La web se publica en:
https://fiestas.aldeapucela.org/
Sus principales rutas son:
| Ruta | Uso |
|---|---|
/ |
Agenda principal. |
/mapa/ |
Mapa de actividades con coordenadas. |
/e/<id>/<slug>/ |
Ficha permanente de una actividad. |
/plan/ |
Favoritos y planes personales del navegador. |
/plan/importar/ |
Importación de planes compartidos. |
/planes/ |
Planes públicos de la comunidad. |
/planes/<id>/ |
Ficha de un plan público. |
La producción es una web estática: el contenido se genera en dist/ y se publica mediante GitHub Pages. El workflow de deploy-pages.yml construye el sitio en cada push a main o master.
Las rutas de Fiestas viven en la raíz de su propio dominio. Los enlaces al resto de Aldea Pucela Eventos deben usar URLs absolutas con base en:
https://eventos.aldeapucela.org/
La app conserva integraciones externas aprobadas con Aldea Pucela Eventos: calendario/RSS globales, boletín, enlaces de comunidad del menú y Font Awesome servido desde eventos.aldeapucela.org para aprovechar caché compartida.
El proyecto separa los datos, la generación de páginas y el comportamiento del navegador:
| Parte | Responsabilidad |
|---|---|
src/data/ |
Programa de actividades y catálogo de planes públicos. |
src/templates/ |
Plantillas Nunjucks para agenda, mapa, fichas y planes. |
src/styles/ |
CSS de la aplicación, procesado con Tailwind, PostCSS y Autoprefixer. |
src/scripts/ |
Módulos ES del navegador: agenda, filtros, mapa, favoritos, planes, PWA, tema y analítica. |
src/assets/ |
Imágenes, iconos, manifest y recursos editoriales. |
src/pwa/ |
Service worker y página offline. |
scripts/build.mjs |
Generador estático que valida datos y escribe dist/. |
scripts/dev.mjs |
Servidor local con build inicial y reconstrucción al cambiar src/. |
tests/ |
Pruebas automatizadas del código JavaScript. |
El navegador recibe HTML ya generado y módulos JavaScript que añaden la interacción. El mapa carga Leaflet bajo demanda. Los recursos propios de CSS y JavaScript se publican con versiones derivadas de su contenido para evitar problemas de caché.
La fuente principal de actividades es:
src/data/fiestas-2026/events.json
Cada actividad tiene un ID numérico estable. El build genera su slug, su URL, sus metadatos sociales y, cuando hay coordenadas, sus enlaces de mapa. Los planes públicos se definen en src/data/community-plans.json y sus archivos se guardan en src/data/community-plans/.
El script scripts/import-eventos-ferias.mjs consulta https://eventos.aldeapucela.org/site-data.json y procesa únicamente actividades que empiezan entre el 4 y el 13 de septiembre de 2026 en Valladolid. Detecta coincidencias con el catálogo local, enriquece las fichas y añade solo las actividades nuevas; también incorpora carteles remotos cuando faltan y geocodifica los lugares con Nominatim.
La ejecución por defecto es una simulación y deja el informe en .cache/fiestas/reports/:
npm run events:import:ferias
Para aplicar los cambios:
npm run events:import:ferias -- --apply
npm run build
Las ubicaciones que no se pueden resolver de forma segura no se importan automáticamente: quedan anotadas como unresolved en el informe para revisión manual. El script es incremental e idempotente, por lo que repetirlo no duplica actividades ya importadas.
La instalación, el servidor local, las pruebas, el build, la auditoría de ubicaciones y las opciones de configuración están documentados en:
El código fuente se publica bajo GNU AGPL versión 3.0; consulta el archivo LICENSE.
El contenido se publica bajo CC BY-SA 4.0; consulta LICENSE-CONTENT.
El código está disponible en GitHub.