A small portfolio site that showcases my other websites.
client/- Vite + React frontendserver/- Express API + serves the built frontend in production- Root
package.jsonruns both with hot reload in development
npm install
npm run dev- Client: http://localhost:5173
- Server: http://localhost:5174
npm run build
npm startThen open http://localhost:5174
Copy .env.example to .env (optional in dev):
cp server/.env.example server/.envADMIN_KEYcontrols admin moderation endpoints.- Notes submitted publicly are created as
pendingand only appear after approval. - Set
POSTHOG_PROJECT_TOKENto enable analytics, session replay, feature flags, and other PostHog client features. POSTHOG_REGIONdefaults tous. Switch it toeufor the EU cloud, or use the optional host overrides inserver/.env.examplefor a custom setup.- Browser SDK traffic is proxied through the Express backend at
/_relay, so the frontend does not call PostHog directly.
Build and run:
docker build -t portfolio-website .
docker run -p 5174:5174 --env ADMIN_KEY=change-me portfolio-website