A modern, fully responsive website for Oklahoma State University's premier hackathon event featuring sleek animations, comprehensive event information, and seamless mobile experience.
- Fully Responsive Design: Optimized for all devices from mobile to desktop
- Modern UI/UX: Clean, minimalist interface using Oklahoma State's official orange and black branding
- Smooth Animations: Beautiful transitions and scroll-triggered animations using Framer Motion
- Mobile-First Approach: Comprehensive mobile optimization with touch-friendly interactions
- Accessibility: Proper ARIA labels, semantic HTML, and keyboard navigation support
- Homepage: Hero section, event highlights, Discord integration, and dual CTAs
- Event Information: Comprehensive details, schedule, prizes, amenities, and FAQ
- Team Page: Dynamic team member cards with social media integration and image fallbacks
- Sponsors Page: Sponsor showcase, sponsorship tiers, add-ons, and partnership information
- Navigation: Responsive header with mobile menu and persistent footer
- Discord Community: Prominent Discord buttons across all pages (https://discord.gg/NkrYgaUnAN)
- External Registration: Google Forms integration for event registration
- Social Media: Team member social profiles with conditional rendering
- Analytics: Vercel Analytics integration for traffic monitoring
- Contact: Direct email links and sponsorship packet downloads
- Type Safety: Full TypeScript implementation with strict type checking
- Performance: Next.js 15 with App Router and Turbopack for fast builds
- SEO Optimized: Complete metadata, Open Graph, and Twitter Card support
- Hydration Safe: Resolved all SSR/client hydration mismatches
- Error Handling: Graceful image fallbacks and robust error boundaries
- Framework: Next.js 15.5.2 with App Router
- Language: TypeScript 5+ with strict configuration
- Styling: Tailwind CSS v4 with custom OSU theme variables
- Animations: Framer Motion 12.23.12 for complex interactions
- Icons: Lucide React for consistent iconography
- Analytics: Vercel Analytics for performance monitoring
- Development: ESLint 9 with Next.js configuration
The website has been thoroughly optimized for mobile devices with:
- Responsive Typography: Scales from
text-3xlon mobile totext-7xlon desktop - Touch-Friendly Buttons: Full-width buttons on mobile with appropriate touch targets
- Optimized Spacing: Reduced padding and margins for mobile (
py-12 sm:py-16 md:py-20) - Mobile Grid Layouts:
sm:grid-cols-2breakpoints for optimal content display - Conditional Social Icons: Only display social media links when provided
- Team Card Consistency:
min-h-[400px]ensures uniform card sizing regardless of content length
- Node.js 18+
- npm or yarn
-
Clone the repository:
git clone [repository-url] cd hackokstate -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser: Navigate to http://localhost:3000
# Development with Turbopack (faster)
npm run dev
# Production build with Turbopack
npm run build
# Start production server
npm start
# Lint code
npm run linthackokstate/
├── src/
│ ├── app/
│ │ ├── globals.css # Global styles with OSU color variables
│ │ ├── layout.tsx # Root layout with metadata and analytics
│ │ ├── page.tsx # Homepage with hero, features, and CTA
│ │ ├── info/
│ │ │ └── page.tsx # Event details, schedule, prizes, FAQ
│ │ ├── sponsors/
│ │ │ └── page.tsx # Sponsors, tiers, addons, contact
│ │ └── team/
│ │ └── page.tsx # Team member cards and join CTA
│ ├── components/
│ │ ├── Header.tsx # Responsive navigation with mobile menu
│ │ └── Footer.tsx # Footer with social links and quick nav
│ └── data/
│ ├── sponsors.ts # Sponsor data with TypeScript interfaces
│ └── team.ts # Team member data with social profiles
├── public/
│ ├── hackokstate icon.ico # Favicon and app icons
│ ├── og-image.png # Open Graph image
│ ├── prospectus_packet.pdf # Sponsorship information packet
│ └── team/
│ └── colter.jpg # Team member photos
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── next.config.ts # Next.js configuration
└── README.md # This file
The website uses Oklahoma State University's official brand colors:
--osu-orange: #FF6600 /* Primary brand color */
--osu-orange-light: #FF8533 /* Hover states and accents */
--osu-orange-dark: #CC5200 /* Active states */
--osu-black: #000000 /* Text and contrasts */
--osu-gray-dark: #1a1a1a /* Secondary text */
--osu-gray-light: #f5f5f5 /* Backgrounds and subtle elements */- Font Family: Inter (Google Fonts) with system fallbacks
- Mobile Scale:
text-3xl→text-4xl→text-5xl - Desktop Scale:
text-5xl→text-6xl→text-7xl - Responsive: All text scales appropriately across breakpoints
sm: 640px /* Small tablets */
md: 768px /* Medium tablets */
lg: 1024px /* Small laptops */
xl: 1280px /* Large screens */- Hero Section: Event branding, date, location, and primary CTAs
- Feature Highlights: 24-hour format, participant count, prizes, skill levels
- Call-to-Action: Registration and Discord community links
- Key Features: Discord integration, responsive design, smooth animations
- Event Details: Date, time, location, and duration information
- Prize Categories: Competition tracks with descriptions and prizes
- Schedule: Complete 24-hour event timeline
- Amenities: Food, WiFi, workspace details
- FAQ: Comprehensive answers to common questions
- Team Members: Dynamic cards with photos, roles, and bios
- Social Integration: Conditional rendering of GitHub, LinkedIn, Instagram
- Image Fallbacks: Initials-based placeholders for missing photos
- Join CTA: Email contact for potential team members
- Current Sponsors: Grid of existing partners with placeholder opportunities
- Sponsorship Tiers: Platinum, Gold, Silver, Bronze with detailed benefits
- Add-on Options: Tech talks, challenges, meal sponsorships
- Contact Information: Email and sponsorship packet download
-
Update Event Details:
// src/app/layout.tsx - Update metadata export const metadata: Metadata = { title: "Hack OKState '26 | Oklahoma State University Hackathon", description: "Join us for Hack OKState '26...", }
-
Modify Colors:
/* src/app/globals.css */ :root { --osu-orange: #your-primary-color; --osu-orange-dark: #your-secondary-color; }
-
Update Team Members:
// src/data/team.ts export const teamData: TeamMember[] = [ { name: "New Organizer", role: "Event Director", bio: "Description...", image: "/team/new-photo.jpg", github: "https://github.com/username", // ... other social links } ]
-
Add New Sponsors:
// src/data/sponsors.ts export const sponsorsData: Sponsor[] = [ { name: "Company Name", tier: "Gold", logo: "/sponsors/company-logo.png", website: "https://company.com", description: "Company description" } ]
-
Connect Repository:
- Link your GitHub repository to Vercel
- Automatic deployments on push to main branch
-
Environment Variables:
NODE_ENV=production
-
Build Command:
npm run build
Ensure your hosting platform supports:
- Node.js 18+
- Next.js 15 App Router
- Static file serving
- Environment variable configuration
- Static pages are generated at build time
- Images and assets are optimized automatically
- CSS is minified and vendor-prefixed
- Meta Tags: Complete title, description, keywords
- Open Graph: Social media sharing optimization
- Twitter Cards: Enhanced Twitter link previews
- Structured Data: Semantic HTML markup
- Sitemap: Automatic generation via Next.js
- Vercel Analytics: Built-in performance and visitor tracking
- Privacy-Focused: No personal data collection
- Performance Metrics: Core Web Vitals monitoring
-
Hydration Errors:
- All hydration mismatches have been resolved
- Animations now depend only on
mountedstate
-
Missing Images:
- Team member photos fall back to initials
- Sponsor logos show placeholder text
- All images include proper alt attributes
-
Mobile Responsiveness:
- All sections tested on various screen sizes
- Touch targets meet accessibility guidelines
- Text scales appropriately across breakpoints
- Use
npm run devwith Turbopack for faster development - Check browser console for any remaining issues
- Test on actual mobile devices when possible
- Validate HTML and accessibility with browser tools
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use TypeScript for all new code
- Follow existing component patterns
- Ensure mobile responsiveness
- Test across different browsers
- Maintain accessibility standards
- Email: hackokstate@okstate.edu
- Discord: https://discord.gg/NkrYgaUnAN
- Website: https://hackokstate.com
This project is open source and available under the MIT License.
Built with ❤️ by the Hack OKState team at Oklahoma State University