# Such Software Website Corporate website for Such Software LLC, a full-service software provider based in Kennett Square, PA. ## Tech Stack ### Core Framework - **Next.js 15** - React framework with App Router - **React 18** - UI library - **TypeScript 5** - Type safety ### Styling & Animation - **Tailwind CSS 3** - Utility-first CSS - **Framer Motion 11** - Animations and transitions - **tailwind-merge** - Conditional class merging - **class-variance-authority** - Component variants ### UI Components - **Radix UI** - Accessible primitives - **Lucide React** - Icon library - **react-icons** - Additional icons (FontAwesome, etc.) ### Theming - **next-themes 0.4** - Dark/light mode with system preference detection ### Forms & Validation - **Zod** - Schema validation - **Cloudflare Turnstile** - Bot protection via `@marsidev/react-turnstile` ### Build & Dev Tools - **Turborepo** - Monorepo build system - **pnpm 9** - Package manager - **ESLint** - Linting - **Prettier** - Code formatting ## Project Structure ``` such-software-site/ ├── apps/ │ └── web/ # Next.js website │ ├── src/ │ │ ├── app/ # App Router pages │ │ │ ├── page.tsx # Homepage │ │ │ ├── services/ # Services page │ │ │ ├── about/ # About page │ │ │ └── layout.tsx # Root layout │ │ ├── components/ │ │ │ ├── about/ # About page components │ │ │ ├── contact/ # Contact form │ │ │ ├── landing/ # Homepage components │ │ │ ├── layout/ # Header, Footer, etc. │ │ │ └── portfolio/ # Portfolio grid │ │ ├── actions/ # Server actions │ │ └── lib/ # Utilities │ └── public/ # Static assets ├── packages/ │ ├── ui/ # Shared UI components │ │ └── src/ │ │ ├── components/ # Button, Card, etc. │ │ ├── procedural/ # Canvas animations (NebulaField, DataGrid) │ │ └── lib/ # Utilities (cn) │ └── config/ # Shared TypeScript/ESLint config ├── turbo.json # Turborepo config ├── pnpm-workspace.yaml # pnpm workspace config └── package.json # Root package.json ``` ## Development ### Prerequisites - Node.js >= 20.0.0 - pnpm >= 9.0.0 ### Getting Started ```bash # Install dependencies pnpm install # Start development server pnpm dev # Build for production pnpm build # Start production server pnpm start ``` The dev server runs at `http://localhost:3000`. ## Accessibility & Quality ### Current Status See [TODO_ACCESS.md](TODO_ACCESS.md) for detailed audit results. ### Lighthouse Scores (Dev Server) | Category | Score | |----------|-------| | Performance | 51 | | Accessibility | 95 | | SEO | 91 | | Best Practices | 73 | **Note:** Production builds typically score higher. ### Testing Tools #### Current - **Lighthouse** - Performance, accessibility, SEO, best practices ```bash npx lighthouse http://localhost:3000 --view ``` #### Planned - **Playwright + axe-core** - Automated accessibility testing ```bash pnpm add -D @playwright/test @axe-core/playwright npx playwright install ``` ### Accessibility Features - Skip-to-main-content link - Semantic HTML5 structure (`
`, `