A simple, open-source directory and URL redirector for Google Developer Group (GDG) DevFest events using the devfe.st
domain.
- Short, memorable URLs for DevFest events (e.g.,
devfe.st/bangalore
) - Directory listing of all DevFest events globally
- Search and filter functionality
- Dynamic updates without requiring redeployment
- Theme-aware interface with light and dark modes
- Interactive map with location markers
- Secure update mechanism via GitHub Issues and approval workflow
- Frontend: Next.js, TypeScript, Tailwind CSS, shadcn/ui
- Backend: Next.js API routes
- Data Storage: Upstash Redis
- Deployment: Vercel
- Automation: GitHub Actions for updates
- Mapping: Leaflet with theme-aware tiles
- Node.js 18+ and npm
- Upstash Redis account
-
Clone the repository:
git clone https://github.com/choraria/devfest.git cd devfest
-
Install dependencies:
npm install
-
Create a
.env.local
file with your Upstash Redis credentials:UPSTASH_REDIS_REST_URL=your-redis-url UPSTASH_REDIS_REST_TOKEN=your-redis-token NEXT_PUBLIC_SITE_URL=https://devfe.st
-
Seed the database with sample data (optional, for development):
npm run seed
-
Start the development server:
npm run dev
Each redirect entry contains:
destinationUrl
: The URL to redirect to (must be HTTPS)devfestDate
: Date of the DevFest event (YYYY-MM-DD format)devfestName
: Name of the DevFest event (auto-generated if not provided)updatedBy
: GitHub username of last updaterupdatedAt
: ISO timestamp of last update
Note: The slug
is used as the Redis key and is required in the issue title but not stored in the entry data.
gdgChapter
: GDG chapter namecity
: City namecountryName
: Country namecountryCode
: Country code (ISO)latitude
: Geographic coordinateslongitude
: Geographic coordinatesgdgUrl
: GDG chapter URL
To request a URL update:
- Go to the Issues page
- Fill out the required information in the issue template
- Submit the issue
- Wait for repository owner approval
Our GitHub Actions workflow will:
- Validate the provided information
- Request approval from repository owner
- Update the URL after approval
- Add a 'processed' label and close the issue
- Provide confirmation with the updated details
Note: The workflow only updates existing entries. New entries must be added through the seeding process.
- Automatically switches between light and dark modes
- Uses grayscale styling in dark mode for better visibility
- Maintains colored markers in both modes
- Smooth transitions between themes
- Searchable by DevFest name and location
- Filterable by country
- Sortable date column
- Quick copy functionality for short URLs
- Direct links to update existing entries
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Developer Groups (GDG) for organizing DevFest events worldwide
- The open-source community for the tools that make this project possible