Skip to content

python-chile/PyDay

Repository files navigation

🐍 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

  • Dynamic content routing for different conference locations
  • Interactive map showing participating cities
  • City-specific schedules and venue details

πŸ“Έ Multimedia Hub

  • Responsive image gallery with lazy loading
  • Full-screen modal viewer with keyboard navigation
  • Organized historical content by year and location
  • Embedded video section with responsive players

πŸš€ Modern Web Practices

  • Next.js 13+ App Router implementation
  • Optimized WebP image delivery
  • Responsive UI built with Tailwind CSS
  • Accessibility-first components (ARIA labels, keyboard navigation)

🎀 Event Features

  • Speaker profiles with social links
  • Interactive schedule with filtering
  • Sponsor showcase with tiered visibility
  • Registration form with client-side validation

πŸ›  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

  • WCAG 2.1 AA-compliant components
  • Semantic HTML structure
  • Keyboard-navigable interfaces
  • Reduced-motion preference support
  • ARIA labels for interactive elements

πŸ“Œ Core Dependencies

🚦 Feature Management

Control feature visibility via environment variables:

# .env.local
NEXT_PUBLIC_FEATURE_REGISTRATION="false"   # Main registration form
NEXT_PUBLIC_FEATURE_SPONSORS="true"       # Full sponsors section
NEXT_PUBLIC_FEATURE_SPONSOR_FORM="false"  # Individual sponsor inquiry form

Available Variables

Variable Description Valid Values
NEXT_PUBLIC_FEATURE_REGISTRATION Enables main registration form true/false
NEXT_PUBLIC_FEATURE_SPONSORS Shows full sponsors section true/false
NEXT_PUBLIC_FEATURE_SPONSOR_FORM Activates sponsor inquiry form true/false

Recommended Workflow

  1. Set variables in .env.local using true/false.
  2. Restart the server after any changes.
  3. Alternate CTAs automatically display when:
    • A feature is disabled (false)
    • An external link is provided in cityData.js

External Link Configuration

// Example in src/data/cities.js
valparaiso: {
  talkProposalLink: "https://..." // Valid URL enables automatic CTA
}

Note: Alternate CTAs appear only when the related feature flag is false and a link is configured for that city.

πŸš€ Deployment & Production Setup

Critical Server Configuration:
For production deployments, follow our Server Setup Guide covering:

  • Node.js environment requirements
  • PM2 process management
  • GitHub Actions integration
  • Mandatory environment variables
  • Image optimization pipeline

Minimum Requirements:

  • Node.js v20+
  • 2GB RAM minimum
  • HTTPS configuration

πŸ“Œ Admin Note: The output: 'export' config is prohibited** - breaks dynamic routes and middleware. Always use standard Next.js build (npm run build+npm start`).

🌍 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
πŸ“§ [email protected]

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 9