✅ PRODUCTS:
- 7 product markdown files with full data
- All product images working correctly
- Specs, features, applications for each product
- SEO keywords included
✅ IMAGES:
- 96 images in public folder
- 15 new product images downloaded
- Correct image paths in all products
✅ BUILD:
- 16 pages building successfully
- All images load correctly
- Pure CSS (no Tailwind dependency)
- 8.7KB CSS bundle
✅ UX/UI:
- Modern responsive design
- Professional visual hierarchy
- Mobile-optimized
- Fast loading
Products included:
- ท่อ HDPE
- PP-R/PP-RCT POLOPLAST
- ท่อ PPR ตราช้าง (SCG)
- ท่อ PPR – Thai PPR
- ท่อไซเลอร์ (Syler)
- ท่อระบายน้ำ 3 ชั้น ไซเลนท์ (XYLENT)
- + 34 more products ready to add
Ready for production deployment!
- Changed from 'always' to 'auto' for inlineStylesheets
- Tailwind v4 now properly generates all utility classes
- CSS is properly inlined (4.4KB vs 1KB before)
- All buttons, colors, grid, flex utilities now working
- Added @import for globals.css in BaseLayout <style is:global>
- Removed @import "tailwindcss" from globals.css (not needed with @tailwindcss/vite plugin)
- Tailwind v4 now properly processes all CSS
- Custom theme colors now working (primary green, secondary grays)
- All Tailwind utility classes now functional
CSS now fully working across all pages!
- Tailwind v4 with @theme syntax
- Custom color variables (primary green, secondary grays)
- Button components (.btn-primary, .btn-secondary, .btn-outline)
- Section typography (.section-title, .section-subtitle)
- Card styles with hover effects
- Kanit font and proper typography
CSS is now working properly with all product pages.
- Restored site-config.ts (2100 lines with all product tables)
- Restored proper product page template with table rendering
- Restored Header, Footer, FloatingContact components
- All 6 products now show detailed specification tables
- Preserved all PDPA compliance features
- Downloaded real logo from live site
- Downloaded all product images
- Fixed image paths to match actual files
- All 6 products now show correct images
- Created public/images/2021/03/ with 77 product images
- Added logo at /images/2021/02/13523630950840.png
- All product pages now display images correctly
- Homepage hero image works
- Blog post featured images work
- Removed @astrojs/node import (causes build failure)
- Changed output: 'server' → 'static'
- Works with Docker build (no dependency conflicts)
- All pages still render correctly
- Consent works with localStorage (API routes not supported)
- Keep output: 'static' (works for production)
- Add --cors to serve package (allows API origins)
- Update Dockerfile to use serve with cors
- No SSR adapter dependencies needed (avoiding conflicts)
- Still preserves all PDPA features
- Admin dashboard will work with CORS-enabled serve
- All API endpoints accessible
- Removed vite.preview/server config that was causing host blocks
- Since we serve static files via 'serve' package, this config is unnecessary in production
- Astro only builds static files and we serve them directly from dist/ folder
- Eliminates 'Blocked request' error in production
- Use 'serve' static file server instead of 'astro preview'
- Static server has NO host restrictions (pure HTTP)
- Bypass Astro preview host validation entirely
- Astro built to static files in build stage
- Serve static HTML/CSS/JS in production stage
- Fixes ALL host restriction issues (403 + blocked request)
- Use 'npx serve' for static file serving
- Avoid Astro preview host restrictions
- Serve all routes from dist/ folder
- Fixes 403 forbidden errors
- Better for static Astro sites with API endpoints
- Run astro preview --host 0.0.0.0 to allow all hosts
- Fix 'Blocked request' on Easypanel custom domains
- Override Astro config host restriction with CLI flag
- Sharp required for Next.js image optimization in production
- Fixes: sharp is required to be installed in standalone mode
- Added as production dependency (--save)
- Added favicon.ico and favicon.svg from dealplustech.co.th
- Added typography guidance comment in globals.css
- NO automatic font size changes
- Use .text-base (16px) minimum for readable text
- .text-xs: 1rem (16px) instead of 0.75rem (12px)
- .text-sm: 1rem (16px) instead of 0.875rem (14px)
- Large screens (1280px+): 1.125rem (18px)
- Extra large (1536px+): 1.25rem (20px)
Ensures minimum readable text size on all screens.
- Base font: unchanged (16px default)
- Large screens (1280px+): 17px base (+1px only)
- Extra large (1536px+): 18px base (+2px only)
- .text-small: text-sm md:text-base (increased on medium+ screens)
Only smallest text increased, not all text sizes.
- Base font: 18px (was 16px)
- Large screens (1280px+): 20px
- Extra large (1536px+): 22px
- Ultra large (1920px+): 24px
- Buttons: text-lg md:text-xl (was smaller)
- Navigation: text-base md:text-lg
- Body text: text-base md:text-lg lg:text-xl
- Section titles: text-4xl md:text-5xl lg:text-6xl
- NEVER use text-xs or text-sm (too small on big screens)
- All text now scales properly for 4K displays
- Real favicon.ico from original website (1.4KB)
- Real favicon.svg from original website (140KB)
- Real apple-touch-icon.png from original website
- Match exact original branding
- Next.js builds to .next/standalone, not dist/
- Use next.config.mjs output: 'standalone'
- Copy .next/static for static assets
- Copy public folder for static files
- Astro build already copies public/ to dist/
- Separate public copy was unnecessary
- Only copy dist folder (contains everything including favicon)
- Fixes favicon 404 error
- Add alternate icon link for favicon.ico
- Add apple-touch-icon link
- Browser automatically requests favicon.ico as fallback
- This prevents 404 errors in console
- Add horizontal scroll wrapper for narrow screens
- Reduce font sizes on mobile (text-xs md:text-sm)
- Add padding adjustments for mobile (px-3 py-2)
- Add overflow-x-auto with negative margins for full-width scroll
- Enable word break on cell content
- Set min-width 600px for table readability
- Add border-collapse for cleaner borders
Tables now scroll horizontally on mobile with better readability.
- Add SiteConfig, NavItem, ProductCategory, WorkHours interfaces
- Remove: import { ... } from './site-config' (circular import)
- Types now defined at top of file
Fixes TypeScript build error on Easypanel.
- Create .docker/Dockerfile
- This is a standard location that Easypanel recognizes
- Overrides nixpacks auto-generation
- Simple Astro build without Next.js caching
- Delete src/content.config.ts file
- Astro uses built-in content collection defaults
- Fixes build errors from explicit schema configuration
- First deploy worked without this file
- Subsequent deploys failed because of this file
- Add product detail page ([slug].astro) with table rendering
- Display productTables from site-config.ts on product pages
- Add responsive font scaling for large screens (1280px+)
- Base font scales from 16px to 24px on 4K displays
- All text elements use responsive sizing (md/lg/xl breakpoints)
- Tables styled with green headers and alternating rows
- Add comprehensive documentation (FIXES_SUMMARY.md)
Fixes:
- Product specification tables now visible on product pages
- Font too small on large screens - now responsive
- Add dynamic sitemap.xml generation for all pages
- Add robots.txt for search engine crawl directives
- Add LocalBusiness JSON-LD schema for local SEO
- Add BreadcrumbList schema for navigation breadcrumbs
- Add canonical URLs to all product pages
- Add Twitter Cards metadata
- Add Google Analytics 4 integration component
- Create llm.txt with all product data for AI optimization
- Create reusable UI components (Button, Card, Badge)
- Update company address to full Thai address
- Update .env.example with GA4 placeholder
- Add keywords, seoContent, specifications, features, FAQ, and Schema.org data
- Extend types for ProductSpecification and FAQItem
- Update product page to render SEO sections with structured data
- All content in Thai for Thai market SEO optimization