A Next.js application built with TypeScript for discovering events in San Francisco.
- Event discovery and browsing
- Category filtering (Market, Workshop, Arts & Crafts, Outdoor, Social, Music, Wellness, Exhibit, Hobby)
- Admin panel for managing events
- Responsive design for mobile and desktop
- Custom favicon illustrated by Chris Chung
- Next.js 14
- TypeScript
- React 18
- CSS Modules
- Gaegu & DynaPuff fonts
- Lucide React icons
First, install the dependencies:
npm installCreate a .env.local file in the root directory and add your admin password:
cp .env.example .env.localThen edit .env.local and set your password:
NEXT_PUBLIC_ADMIN_PASSWORD=your_secure_password_here
Then, run the development server:
npm run devOpen http://localhost:3000 with your browser to see the result.
The admin panel is password protected. Access it at http://localhost:3000/admin using the password set in your .env.local file.
Features:
- Add new events (with required fields: title, start date, time, location, link)
- Edit existing events
- Delete events
- Clean up past events with one click
- Manage event categories, dates, prices, and details
- Time picker with AM/PM selection
Events are stored in .data/events.json and persist across restarts. Past events are automatically hidden from the main page but remain visible in the admin panel until manually cleaned up.
npm run build
npm start