No description
- Switch hero from plain <img> to Next.js <Image> component - Fixes broken images by proxying through /_next/image - S3 URLs now work via configured remotePatterns - Add responsive min-heights instead of hard-coded values - min-h-[420px] sm:min-h-[480px] lg:min-h-[550px] - Add line-clamp-3 to title and excerpt for consistent carousel height - Fix hydration mismatch with UTC timezone in date formatting Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .docker | ||
| .playwright-mcp | ||
| .serena | ||
| content/handbook/laws | ||
| docs | ||
| drizzle | ||
| exports | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| .mcp.json | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| audit_safety.json | ||
| audit_sample.json | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| drizzle.config.ts | ||
| eslint.config.mjs | ||
| GEMINI.md | ||
| link to CLAUDE.md | ||
| next.config.js | ||
| nixpacks.toml | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| postcss.config.mjs | ||
| README.md | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
| validation_summary.txt | ||
| vercel.json | ||
| vitest.config.mts | ||
| vitest.setup.ts | ||
The Boise Gun Club
Idaho's firearms community platform - Events, business directory, shooting locations, and community forums.
Production: https://theboisegunclub.com Version: 1.3.43
Quick Start
# Clone and install
git clone https://github.com/yourusername/theboisegunclub.git
cd theboisegunclub
npm ci --legacy-peer-deps
# Configure environment
cp .env.example .env.local
# Edit .env.local with your credentials (see docs/ENVIRONMENT_VARIABLES.md)
# Verify database connection (port 5433)
PGPASSWORD=prod123 psql -h 127.0.0.1 -p 5433 -U bgc_prod -d boise_gun_club_prod -c "SELECT 1"
npm run drizzle:migrate
# Start dev server
npm run dev
Access: http://localhost:1337
Tech Stack
| Layer | Technologies |
|---|---|
| Frontend | Next.js 15 (App Router), React 19, TypeScript 5.7, Tailwind CSS v4, Framer Motion |
| Backend | Node.js 20+, PostgreSQL 16, Drizzle ORM, JWT auth |
| Infrastructure | Docker, Coolify (self-hosted), Nixpacks |
| External Services | Mapbox, NodeBB (forum), Stalwart (email) |
Project Structure
src/
├── app/ # Next.js App Router (168 API endpoints)
│ ├── (auth)/ # Login, register, OAuth
│ ├── (dashboard)/ # User dashboard
│ ├── api/ # API routes
│ ├── events/ # Event calendar
│ ├── directory/ # Business directory
│ ├── handbook/ # Knowledge base
│ ├── ranges/ # Shooting locations
│ └── campfire/ # Community forum
├── components/ # React components (atomic design)
├── lib/ # Business logic, auth, database
├── stores/ # Zustand state management
└── styles/ # Tailwind v4 tokens and utilities
docs/ # Documentation
scripts/ # Utility and pipeline scripts
scrapers/ # Python data pipeline
drizzle/ # Database migrations
Development
Prerequisites
- Node.js 20+
- Docker (for PostgreSQL)
- Python 3.11+ (optional, for data pipeline)
Environment Variables
Copy .env.example to .env.local and configure. See docs/ENVIRONMENT_VARIABLES.md for complete documentation.
Required variables:
DATABASE_URL- PostgreSQL connection stringJWT_SECRET- Authentication secretNEXT_PUBLIC_MAPBOX_TOKEN- Mapbox public token
Common Commands
# Development
npm run dev # Start dev server
npm run lint # Run ESLint
npx tsc --noEmit # Type check (don't use npm run build during dev)
# Database
npm run drizzle:migrate # Run migrations
npm run seed # Seed test data
# Testing
npm run vitest # Unit tests
npm run test:e2e # E2E tests (Playwright)
# Data Pipeline
npm run pipeline # Full pipeline (Serper -> Scrape -> LLM -> DB)
npm run enrich-events # LLM enrichment only
npm run geocode # Batch geocoding
Database Access
# Production database on port 5433
PGPASSWORD=prod123 psql -h 127.0.0.1 -p 5433 -U bgc_prod -d boise_gun_club_prod
Documentation
| Document | Description |
|---|---|
| CLAUDE.md | Development guidelines (read first) |
| docs/PROJECT_BRIEFING.md | Feature overview |
| docs/ENVIRONMENT_VARIABLES.md | Environment configuration |
| docs/PRODUCTION_DEPLOYMENT_CHECKLIST.md | Deployment procedures |
| docs/API_REFERENCE.md | API endpoint documentation |
Deployment
Platform deploys via Coolify with git push to main. See docs/PRODUCTION_DEPLOYMENT_CHECKLIST.md for complete deployment procedures.
# Pre-deployment checks
npm run lint
npx tsc --noEmit
npm run build
# Deploy
git push origin main
License
Proprietary - All rights reserved.
Contact
Developer: Steve Duskett Email: steve@boisegunclub.com Website: https://theboisegunclub.com