pydaydotcl

🐍 PyDay Chile Website Frontend

PyDay Banner

The official frontend for PyDay Chile - A community-driven Python conference showcasing Chile’s tech talent through talks, workshops, and networking events across multiple cities.

✨ Key Features

📍 Multi-City Experience

📸 Multimedia Hub

🚀 Modern Web Practices

🎤 Event Features

🛠 Tech Stack

Core
Next.js
Tailwind CSS
React

Optimization
Next Image
Lazy Loading
WebP

Interactive
Framer Motion
React Hook Form

📂 Project Structure

pyday-frontend/
├── public/            # Optimized static assets
│   └── images/        # Organized media library
│       ├── gallery/   # Event photos by year/city
│       ├── speakers/  # Speaker headshots
│       └── sponsors/  # Partner logos
│
├── src/
│   ├── app/           # Next.js 13+ routing
│   ├── components/    # Reusable UI elements
│   ├── data/          # Content management
│   └── lib/           # Utilities & helpers
│
└── tailwind.config.js # Custom design system

🖼 Image Optimization

Feature Implementation Benefit
Modern Formats WebP conversion 30% smaller than JPEG
Responsive SrcSet Next.js Image component Device-appropriate sizes
Lazy Loading Intersection Observer API Faster initial load
Blur Placeholders Dynamic SVG generation Smooth loading experience

♿ Accessibility Commitment

📌 Core Dependencies

🚦 Feature Management

Controla la visibilidad de funcionalidades mediante variables de entorno:

# .env.local
NEXT_PUBLIC_FEATURE_REGISTRATION="false"    # Formulario de registro general
NEXT_PUBLIC_FEATURE_SPONSORS="true"        # Sección completa de patrocinios
NEXT_PUBLIC_FEATURE_SPONSOR_FORM="false"   # Formulario de patrocinio específico

Variables Disponibles

| Variable | Descripción | Valores Válidos | |———————————–|———————————————-|—————–| | NEXT_PUBLIC_FEATURE_REGISTRATION | Habilita formulario de registro principal | true/false | | NEXT_PUBLIC_FEATURE_SPONSORS | Muestra sección completa de patrocinios | true/false | | NEXT_PUBLIC_FEATURE_SPONSOR_FORM | Activa formulario de contacto para patrocinios | true/false |

Flujo de Trabajo Recomendado

  1. Configurar variables en .env.local (usar true/false)
  2. Reiniciar servidor después de cambios
  3. Los CTAs alternativos se mostrarán automáticamente cuando:
    • Una funcionalidad está deshabilitada (false)
    • Existe un link externo configurado en cityData.js
// Ejemplo en src/data/cities.js
valparaiso: {
  talkProposalLink: "https://..." // URL válida habilita CTA automático
}

Nota: Los botones alternativos (CTAs) se muestran solo cuando:

Cambios realizados:

  1. Sección dedicada a gestión de features
  2. Tabla clara de variables
  3. Explicación del comportamiento automático
  4. Ejemplo práctico de configuración
  5. Guía visual para no técnicos

Version final del archivo .env.local:

# CONFIGURACIÓN DE FUNCIONALIDADES
# Valores permitidos: "true" (activado) | "false" (desactivado)

NEXT_PUBLIC_FEATURE_REGISTRATION="false"
NEXT_PUBLIC_FEATURE_SPONSORS="true"
NEXT_PUBLIC_FEATURE_SPONSOR_FORM="false"

# URL BASE DEL SITIO (no modificar en desarrollo)
NEXT_PUBLIC_SITE_URL="http://localhost:3000"

🌍 Contributing

We welcome community contributions! Please see our Contribution Guidelines and review our Photography Style Guide for asset submissions.


License: Apache 2.0 (See LICENSE)
Maintainer: PyDay Chile Tech Committee
📧 pyday@pythonchile.cl