A modern, full-stack portfolio website built with React and Node.js.
- Frontend: React + TypeScript + Tailwind CSS
- Backend: Node.js + Express
- Single Service: Frontend and backend served from one application
- Responsive Design: Works on all devices
- Contact Form: Functional contact form
- Fast Deployment: Simple Node.js deployment
-
Install dependencies:
npm run install:all
-
Run development servers:
npm run dev
This starts:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
Deploy to Render (Recommended):
- Push to GitHub
- Go to render.com
- Create new "Blueprint"
- Connect your repository
- Deploy automatically with
render.yaml
Your site will be live at https://your-app-name.onrender.com
├── frontend/ # React application
│ ├── src/
│ ├── public/
│ └── package.json
├── server.js # Node.js Express server
├── render.yaml # Render deployment config
└── README.md
- Build Process: React builds to
frontend/dist, Node.js serves static files - Routing:
/api/*goes to Express server, everything else serves React app - No CORS: Frontend and API are on the same domain
- Frontend: React 18, TypeScript, Tailwind CSS, Vite
- Backend: Node.js, Express
- Deployment: Render (single service)
GET /api/projects- Get all projectsGET /api/projects/:id- Get single projectPOST /api/contact- Submit contact form
Production automatically uses:
NODE_ENV=production
MIT