Personal portfolio with a production-ready contact form.
client/: frontend appserver/: backend APIPOST request to /api/contact.VITE_API_URL=https://your-backend-domain.comNODE_ENV=productionPORT=4000TRUST_PROXY_HOPS=1 (set this only when running behind a trusted proxy)CORS_ORIGIN=https://your-frontend.pages.dev,https://yourdomain.comRESEND_API_KEY=re_...RESEND_FROM=Portfolio <onboarding@resend.dev> (or your verified domain sender)RESEND_TO=your-email@domain.comPUBLIC_SITE_URL=https://your-frontend.pages.dev (used to build the fallback logo URL)RESEND_LOGO_URL=https://your-frontend.pages.dev/favicon.svg (optional override)See server/.env.example and client/.env.example for templates.
Install dependencies:
npm install
npm install --prefix client
npm install --prefix server
Run backend:
npm run dev
Run frontend in another terminal:
npm run dev:client
clientnpm run builddistservernpm installnpm start/api/healthInicioCard are:
banner-v2-320.*banner-v2-480.*banner-v2-640.*banner-v2-960.*banner-v2-1160.*