A modern landing page for COC (Community of Coders) built with Next.js, TypeScript, and Tailwind CSS.
- Clone the repository
git clone https://github.com/SharanRP/COC_Landing.git
cd COC_Landing
- Install dependencies
npm install
- Run development server
npm run dev
# or with Docker
docker compose up --build
Open http://localhost:3000 to view the project.
- Node.js (v18 or higher)
- npm (v9 or higher)
- Docker (optional)
- Copy the environment template:
cp .env.example .env.production
- Install husky hooks:
npm run prepare
git config core.hooksPath .husky
docker compose up --build
Required in .env.production
:
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_secret
POSTHOG_KEY=your_key
POSTHOG_HOST=your_host
All commits and branches are strictly enforced through:
- Local git hooks (husky)
- Server-side hooks
- GitHub Actions
- GUI client configurations
All branches must follow the pattern:
username/feature-name
Example: john/add-ai-page
Enforcement:
- Pre-receive hooks
- GitHub Actions
- Local git hooks
- No force pushes allowed
Before committing, the following are automatically enforced:
- Code linting and formatting
- TypeScript type checking
- Successful build
- Branch name validation
- Commit message format
Follow the conventional commits specification:
type(scope): description
Examples:
feat(ai-page): add machine learning section
fix(navbar): resolve mobile menu overlap
docs(readme): update installation steps
Types:
feat
: New featurefix
: Bug fixdocs
: Documentationstyle
: Formattingrefactor
: Code restructuringtest
: Testschore
: Maintenance
- Create branch following naming convention
- Make changes and commit following guidelines
- Push changes and create PR to
develop
branch - Ensure all checks pass
- Request review
npm run dev
- Start development servernpm run build
- Build production bundlenpm run start
- Start production servernpm run lint
- Check code stylenpm run type-check
- Verify TypeScriptnpm run prepare
- Install husky hooks
├── app/ # Next.js pages
├── components/ # React components
├── lib/ # Utilities and helpers
├── public/ # Static assets
└── styles/ # Global styles
The project uses husky for git hooks:
- Pre-commit: Runs linting, type checking, and build
- Commit-msg: Validates commit message format and branch naming
- Next.js 14
- TypeScript
- Tailwind CSS
- ESLint
- Prettier
- Husky
- Commitlint
This project is licensed under the MIT License.