# DEAL PLUS TECH - PROJECT KNOWLEDGE BASE **Generated:** 2026-03-08 **Commit:** 668f690 **Branch:** main ## OVERVIEW Thai corporate website for pipe/HVAC materials supplier. Next.js 14 App Router + TypeScript + Tailwind CSS. Thai language content with Thai URL support. ## STRUCTURE ``` src/ ├── app/ # Next.js App Router pages ├── components/ # UI, layout, analytics components ├── content/ # Blog markdown files ├── data/ # Product catalog & site config (HUGE) ├── lib/ # Utility functions ├── styles/ # Global CSS + Tailwind └── types/ # TypeScript interfaces ``` ## WHERE TO LOOK | Task | Location | Notes | |------|----------|-------| | Add/edit pages | `src/app/*/page.tsx` | App Router conventions | | Add products | `src/data/site-config.ts` | ProductCategory array | | Add product tables | `src/data/product-tables.ts` | Table data for specs | | UI components | `src/components/ui/` | Button, Card, Badge | | Layout | `src/components/layout/` | Header, Footer, FloatingContact | | Types | `src/types/index.ts` | All interfaces | | Styling | `src/styles/globals.css` | Custom component classes | | SEO/Metadata | `src/app/layout.tsx` | Root metadata + schema | ## CONVENTIONS **Thai-first content**: All UI text, URLs, metadata in Thai. English `nameEn` fields for product IDs. **URL format**: Thai URLs with trailing slash (e.g., `/ท่อพีพีอาร์ตราช้าง/`) **Product data structure**: Each product in `productCategories` has: - Thai `name`, `description`, `seoContent` - English `nameEn`, `id`, `slug` - `specifications[]`, `features[]`, `applications[]`, `faq[]` - `schemaData` for structured data - Optional `productTables[]` for spec tables **Styling**: Tailwind + custom classes in globals.css: - `.btn-primary`, `.btn-secondary`, `.btn-outline` - `.card`, `.card-industrial` - `.section-title`, `.section-subtitle` **Font**: Kanit (Thai Google Font) via `next/font/google` **Path alias**: `@/*` maps to `./src/*` ## ANTI-PATTERNS (THIS PROJECT) - **DO NOT** use `output: 'standalone'` in dev mode (breaks HMR) - **DO NOT** hardcode contact info - use `siteConfig` from `@/data/site-config` - **DO NOT** add tests - project has no test infrastructure - **DO NOT** use `as any` or `@ts-ignore` - strict mode enabled ## UNIQUE STYLES **Design System**: Industrial/construction theme with: - Primary green (#22c55e) - trust, growth - Secondary slate grays - professional, industrial - Accent yellow - highlights - Industrial-specific shadows and gradients **Product pages**: SEO-heavy with structured data (LocalBusiness schema, Product schema) **Blog**: Headless WordPress integration via `NEXT_PUBLIC_WORDPRESS_API_URL` **Image optimization**: AVIF/WebP auto-converted, Thai domain patterns in `next.config.mjs` ## COMMANDS ```bash npm run dev # Development server (localhost:3000) npm run build # Production build npm run start # Production server npm run lint # ESLint check ``` ## NOTES - No CI/CD configured - manual deployments - Environment variables in `.env.local` (copy from `.env.example`) - Large data files in `src/data/` - edit with care - Thai URLs require URL-encoded characters in some contexts - `public/llm.txt` contains AI-readable content for the site