# Hamton Brown CPA - Professional Tax Services

A modern, professional website for Hamton Brown CPA firm built with Next.js 14, TypeScript, and Tailwind CSS.

## 🚀 Features

- **Modern Tech Stack**: Next.js 14 with App Router, TypeScript, Tailwind CSS
- **Professional Design**: Clean, accessible design with brand-consistent color palette
- **SEO Optimized**: Automatic sitemap generation, meta tags, and structured data
- **Contact Forms**: Validated contact forms with email integration
- **Docker Ready**: Multi-stage Docker builds for development and production
- **CI/CD**: GitHub Actions for automated testing and deployment
- **Accessibility**: WCAG 2.2 AA compliant with proper semantic markup

## 🛠️ Tech Stack

- **Framework**: Next.js 14 (App Router)
- **Language**: TypeScript
- **Styling**: Tailwind CSS
- **UI Components**: shadcn/ui + Lucide React icons
- **Validation**: Zod
- **Email**: Resend (with console fallback for development)
- **Deployment**: Docker + Docker Compose

## 📦 Installation

### Prerequisites

- Node.js 18+ or Docker
- npm, yarn, or pnpm

### Local Development

1. **Clone the repository**
   ```bash
   git clone <repository-url>
   cd hamtonbrown
   ```

2. **Install dependencies**
   ```bash
   npm install
   # or
   yarn install
   # or
   pnpm install
   ```

3. **Set up environment variables**
   ```bash
   cp env.example .env.local
   ```
   Edit `.env.local` with your configuration:
   ```env
   SITE_URL=https://hamtonbrown.com
   CONTACT_TO_EMAIL=contact@hamtonbrown.com
   RESEND_API_KEY=your_resend_api_key_here
   ```

4. **Run the development server**
   ```bash
   npm run dev
   # or
   yarn dev
   # or
   pnpm dev
   ```

5. **Open your browser**
   Navigate to [http://localhost:3000](http://localhost:3000)

### Docker Development

```bash
# Start development environment
docker compose --profile dev up --build

# Stop development environment
docker compose --profile dev down
```

### Docker Production

```bash
# Build and start production environment
docker compose up --build

# Stop production environment
docker compose down
```

## 📁 Project Structure

```
hamtonbrown/
├── app/                    # Next.js App Router pages
│   ├── (routes)/          # Route groups
│   ├── api/               # API routes
│   ├── globals.css        # Global styles
│   ├── layout.tsx         # Root layout
│   └── page.tsx           # Home page
├── components/            # Reusable components
│   ├── ui/               # shadcn/ui components
│   └── ...               # Custom components
├── data/                  # Static data and content
├── lib/                   # Utility functions
├── public/                # Static assets
└── ...                    # Configuration files
```

## 🎨 Design System

### Color Palette
- **Navy**: `#0F2740` (Primary)
- **Teal**: `#157A85` (Accents)
- **Ink**: `#0F1320` (Text)
- **Sand**: `#F6F7F8` (Background)
- **Cloud**: `#FFFFFF` (White)
- **Slate**: `#6B7280` (Gray)

### Typography
- System UI stack with sensible fallbacks
- Clean hierarchy with consistent sizing

## 📄 Available Routes

- **Home**: `/tax-planning/` (redirects from `/`)
- **Services**:
  - `/services/tax-planning`
  - `/services/income-tax-preparation`
  - `/services/estate-tax-planning`
  - `/services/financial-planning`
  - `/services/advisory`
- **About**: `/about`
- **Pricing**: `/pricing`
- **Resources**: `/resources`
- **Reviews**: `/reviews`
- **Contact**: `/contact`
- **Legal**: `/legal/privacy`, `/legal/terms`

## 🔧 Development Scripts

```bash
# Development
npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint
npm run type-check   # Run TypeScript type checking
npm run format       # Format code with Prettier
npm run format:check # Check code formatting
```

## 🚀 Deployment

### Vercel (Recommended)

1. Connect your repository to Vercel
2. Set environment variables in Vercel dashboard
3. Deploy automatically on push to main branch

### Docker Production

```bash
# Build and run production container
docker compose up --build

# Or build image separately
docker build -t hamtonbrown-cpa .
docker run -p 3000:3000 hamtonbrown-cpa
```

### Environment Variables

Required for production:
- `SITE_URL`: Your website URL
- `CONTACT_TO_EMAIL`: Email address for contact form submissions
- `RESEND_API_KEY`: Resend API key for email sending (optional)

## 🧪 Testing

```bash
# Run linting
npm run lint

# Run type checking
npm run type-check

# Check formatting
npm run format:check
```

## 📸 Images

The project includes placeholder images in `/public/images/`. For production, replace these with actual images following the specifications in `/content/image-prompts.md`.

## 🔒 Security

- Input validation with Zod
- Rate limiting on contact forms
- Secure headers via Next.js
- Environment variable protection
- Non-root Docker user

## ♿ Accessibility

- WCAG 2.2 AA compliant
- Semantic HTML structure
- Proper heading hierarchy
- Focus management
- Screen reader support
- Keyboard navigation
- High contrast ratios

## 📈 SEO

- Automatic sitemap generation
- Robots.txt configuration
- Meta tags and Open Graph
- Structured data (JSON-LD)
- Semantic HTML markup

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting
5. Submit a pull request

## 📄 License

This project is proprietary to Hamton Brown CPA.

## 🆘 Support

For support or questions, contact:
- Email: contact@hamtonbrown.com
- Phone: [Your Phone Number]

---

Built with ❤️ for Hamton Brown CPA
# hamptonbrown
