5.7 KiB
5.7 KiB
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
-
Clone the repository
git clone <repository-url> cd hamtonbrown -
Install dependencies
npm install # or yarn install # or pnpm install -
Set up environment variables
cp env.example .env.localEdit
.env.localwith your configuration:SITE_URL=https://hamtonbrown.com CONTACT_TO_EMAIL=contact@hamtonbrown.com RESEND_API_KEY=your_resend_api_key_here -
Run the development server
npm run dev # or yarn dev # or pnpm dev -
Open your browser Navigate to http://localhost:3000
Docker Development
# Start development environment
docker compose --profile dev up --build
# Stop development environment
docker compose --profile dev down
Docker Production
# 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
# 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)
- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
Docker Production
# 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 URLCONTACT_TO_EMAIL: Email address for contact form submissionsRESEND_API_KEY: Resend API key for email sending (optional)
🧪 Testing
# 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
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- 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