Personal portfolio for Victor Salgado (vmDev), focused on US job opportunities in full stack engineering.
- Frontend: HTML, CSS, vanilla JavaScript
- Contact API: Node.js, Express, PostgreSQL
- Recruiter-focused English landing page
- Smooth section navigation with active state
- Responsive layout with accessible skip link and focus states
- Contact form with spam honeypot and dual delivery path:
- API (
POST /api/contact) whendata-api-urlis configured mailtofallback when API is unavailable
- API (
- Backend hardening:
- Helmet + rate limit
- strict CORS via
ALLOWED_ORIGINS - PostgreSQL SSL configuration for production
index.html: page markup and metadatastyles.css: visual system and responsive behaviormain.js: UI interactions and contact flowserver/index.js: contact API and health endpointassets/: static media files
- Install dependencies:
npm install- Start API in watch mode:
npm run dev- Configure
.envfrom.env.example. - Serve the frontend with any static server and set:
data-api-url="http://localhost:8787/api/contact"- Health check:
curl http://localhost:8787/api/healthPORT(default8787)ALLOWED_ORIGINS(comma-separated)DATABASE_URL(required)PGSSL_DISABLE_VERIFY(optional, defaults to secure verification)
npm startnpm run devnpm run checknpm run lintnpm run testnpm run typechecknpm run build