- Next.js 16 (App Router) with React 19
- Tailwind CSS 4 + PostCSS for styling
next-intlfor locale-aware routing and translation utilities- Data-driven product catalog for charging stations, super-fast DC, portable chargers, and cables
- Contact form uses a Next.js API route backed by Resend email delivery
app/[locale]/– All routed pages by locale (en,de,ar), plus API routes and not-found boundariessrc/Components/– Shared UI (hero sections, cards, product sections, loaders, emails)src/Data/– Modular product data/configuration, specs, download references, and image maps (index.jsconsolidates exports)src/assets/Images/– Marketing and product imagery (including README header assets)src/app/api/contact/route.js– Next.js API route that sends emails via Resendsrc/config/api.js– legacy API base URL helper (apiCallwrapper)src/i18n/– Routing helpers and localization setup (routing.js,request.js)public/api/– legacy PHP contact handlers (unused when Resend is enabled)server.js– Custom server entry used for production hosting
- Supported locales:
en,de,ar(seesrc/i18n/routing.js) - Default locale:
en - Add a locale by updating
routing.jsand creating a sibling folder underapp/[locale]/ - Use
next-intlhelpers (Link,redirect,useRouter,usePathname) fromsrc/i18n/routing.jsto keep navigation locale-aware
RESEND_API_KEY: API key for Resend email deliveryCONTACT_EMAIL: recipient for contact form submissionsNEXT_PUBLIC_API_URL(optional legacy): base URL if you still call PHP endpoints
src/app/api/contact/route.jssends email via Resend usingRESEND_API_KEYandCONTACT_EMAILsrc/app/api/test-env/route.jsexposes environment sanity checks for Resend config- Legacy PHP scripts live in
public/api/if you still need them
- Entry point:
src/Data/index.js - Each product category exports:
data– content blocks used across pagesimages/backgroundImages– mapped assetsdownloads/downloadData– downloadable PDFs grouped by category
- Utility getters (
getProductData,getProductImages,getProductSpecifications,getAvailableProducts) simplify access across the app
- Tailwind CSS v4 configuration in
tailwind.config.mjs - Global styles:
app/globals.css - Component-level styling via Tailwind utility classes; minimal custom CSS in
src/index.css
- Dev:
pnpm dev - Prod build:
pnpm buildthenpnpm start - Hostinger flow:
pnpm build:hostinger(prepares assets for shared hosting) - Static assets served from
/public(including/public/apiPHP files)
- Verify each locale renders key routes under
/[locale]/... - Submit contact form against the chosen PHP endpoint
- Download links for each product category return valid files
- Lint passes:
pnpm lint