Empowering DevOps Engineers, Cloud Practitioners & DevSecOps Enthusiasts
A modern, fully static Next.js platform for community learning through real-world projects, events, and collaborative growth.
π Features β’ ποΈ Architecture β’ π Quick Start β’ π€ Contributing β’ π Documentation
|
Community calendar powered by Google Calendar integration
|
Recognition program celebrating top contributors
|
|
GitHub-powered project catalog with live metadata
|
Comprehensive Q&A for DevOps/Cloud interviews
|
|
Community-driven job opportunities
|
Beautiful, accessible interface
|
- π Zero Hosting Cost - Deployed to GitHub Pages with automated builds
- β‘ Lightning Fast - Fully static site generation, no server required
- π Auto-Updates - Hourly rebuilds fetch fresh data automatically
- π Smart Search - Client-side fuzzy search with Fuse.js
- π¦ Optimized Bundles - 30%+ size reduction through code splitting
- π§ͺ Test Coverage - Property-based testing with fast-check
- π¨ Component Library - Shadcn/ui with Radix UI primitives
- π Type Safety - Strict TypeScript with Zod validation
graph TB
A[Next.js 15 App Router] --> B[Static Site Generation]
B --> C[GitHub Pages CDN]
D[Google Sheets API] --> B
E[GitHub API] --> B
F[Client-Side Search] --> G[Fuse.js]
H[UI Components] --> I[Shadcn/ui + Radix]
J[Styling] --> K[Tailwind CSS]
L[Testing] --> M[Vitest + fast-check]
src/
βββ app/ # Next.js App Router (pages + layouts)
β βββ events/ # Community events calendar
β βββ heroes/ # Community heroes recognition
β βββ projects/ # Project catalog with GitHub integration
β βββ interview-questions/ # DevOps/Cloud Q&A
β βββ jobs/ # Job board
βββ components/ # Shared UI components
β βββ ui/ # Shadcn/ui components (40+ components)
β βββ layout/ # Navbar, Footer, layouts
β βββ heroes/ # Hero-specific components
βββ features/ # Feature-based modules
β βββ projects/ # Project listing logic
βββ lib/ # Core utilities
β βββ client-search.ts # Fuse.js wrapper
β βββ data-fetcher.ts # Build-time data fetching
β βββ utils.ts # Shared utilities
βββ services/ # External service wrappers
β βββ google-sheets.ts # Google Sheets CSV fetching
βββ data/ # Type definitions & static data
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Build Time (GitHub Actions) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. Trigger (Push/Cron/Manual) β
β 2. Fetch Google Sheets CSV data β
β 3. Fetch GitHub API metadata (stars, forks, topics) β
β 4. Generate static HTML/CSS/JS β
β 5. Deploy to GitHub Pages CDN β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Runtime (Browser) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Static assets served from CDN β
β β’ Client-side search with Fuse.js β
β β’ Theme toggle (dark/light mode) β
β β’ No server-side processing required β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Node.js 20+ and npm
- Git
# Clone the repository
git clone https://github.com/TrainWithShubham/community-website.git
cd community-website
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:3000 to see the site in action! π
# Development
npm run dev # Start dev server with Turbopack
npm run build # Production build (static export)
npm run lint # Run ESLint
npm run typecheck # TypeScript type checking
# Testing
npm run test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:ui # Open Vitest UI
# Commits (Conventional Commits)
npm run commit # Interactive commit prompt
npm run lint:commits # Validate commit messages
# Utilities
npm run env:check # Validate environment variables
npm run test:sheets # Test Google Sheets connectionWe welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- Fork & Clone the repository
- Create a branch from
maingit checkout -b feat/your-feature-name
- Make your changes with proper testing
- Commit using Conventional Commits
npm run commit # Interactive prompt - Push and create a Pull Request
We use Conventional Commits for clear, semantic commit history:
type(scope): brief description
[optional body]
[optional footer]
Types: feat, fix, docs, chore, build, ci, test, refactor, perf, style
Common Scopes: events, heroes, projects, interview-questions, jobs, ui, api, docs, ci
Examples:
feat(heroes): add community heroes recognition program
fix(projects): correct GitHub API rate limiting
docs(readme): update installation instructions
test(heroes): add property-based tests for hero filtering- β TypeScript strict mode
- β ESLint + Prettier formatting
- β Unit tests for utilities
- β Property-based tests for complex logic
- β Accessibility compliance (WCAG)
- β Responsive design (mobile-first)
- π Check CONTRIBUTING.md for detailed guidelines
- π Report bugs via GitHub Issues
- π¬ Join discussions in the community Discord
- π·οΈ Look for
good first issuelabels for beginner-friendly tasks
| Document | Description |
|---|---|
| π Deployment Guide | Complete deployment instructions, custom domain setup, troubleshooting |
| π Migration Report | Vercel to GitHub Pages migration details, cost savings analysis |
| ποΈ Project Structure | Detailed codebase organization and architecture |
| π€ Contributing Guide | Comprehensive contribution guidelines and workflow |
All pages are pre-rendered at build time for maximum performance and zero hosting cost.
GitHub Actions workflow handles:
- β
Immediate deployment on push to
main - β Hourly scheduled rebuilds for fresh data
- β Manual deployment via GitHub Actions UI
Fuse.js provides fuzzy search without server infrastructure:
- β‘ Instant results
- π― Typo-tolerant matching
- π¦ Minimal bundle impact
- Community Heroes recognition program
- Property-based testing infrastructure
- Dark mode support
- Enhanced project filtering
- Event RSVP functionality
- User authentication (optional)
- π Analytics dashboard
- π Event notifications
- π Gamification features
- π± Progressive Web App (PWA)
- π Internationalization (i18n)
- π€ AI-powered recommendations
| Metric | Before (Vercel) | After (GitHub Pages) | Improvement |
|---|---|---|---|
| Hosting Cost | $240/year | $0/year | π° 100% savings |
| Bundle Size | ~850 KB | ~595 KB | π¦ 30% reduction |
| Build Time | ~45s | ~35s | β‘ 22% faster |
| Deployment | Manual | Automated | π€ Fully automated |
- β 59 tests passing across 7 test suites
- β Property-based tests with 100+ iterations each
- β Unit tests for all core components
- β Integration tests for critical flows
Built with β€οΈ by the TrainWithShubham community
- Next.js - React framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- Shadcn/ui - Component library
- Radix UI - Accessible primitives
- Fuse.js - Fuzzy search
- Vitest - Testing framework
- fast-check - Property-based testing
- GitHub Pages - Hosting
- GitHub Actions - CI/CD
This project is licensed under the MIT License - see the LICENSE file for details.