PPPM is a full-stack multimodal memory-to-confidence app.
Users can:
- Capture memory context (voice/text/media)
- Chat for clarifications
- Generate an AI confidence capsule with interleaved text/image/audio/video
- Save and revisit capsules
- Frontend: React + TypeScript + Vite + Zustand + React Query + i18next
- Backend: Node.js + Express + TypeScript + Prisma
- AI: Google GenAI (
@google/genai) - Storage: Local filesystem fallback (default), optional Google Cloud Storage
- Realtime generation state: Firestore (optional, in-memory fallback)
client/ # React frontend
server/ # Express API + Prisma + AI orchestration
- Node.js 20+
- npm 10+
Optional for full cloud/realtime setup:
- Google API credentials
- Firestore + GCS credentials
- Captcha provider keys (Turnstile or reCAPTCHA)
Copy server/.env.example to server/.env and fill values.
Minimum local/dev values:
PORT=3001FRONTEND_URL=http://localhost:5173DATABASE_URL="file:./dev.db"JWT_SECRET=...JWT_REFRESH_SECRET=...GEMINI_API_KEY=...
Optional:
- Storage provider switch:
STORAGE_PROVIDER=local|gcs - Firestore state sync config
- Captcha config (
CAPTCHA_PROVIDER,CAPTCHA_SECRET)
Copy client/.env.example to client/.env.
Minimum local/dev values:
VITE_API_URL=/api/v1
Optional:
VITE_GOOGLE_CLIENT_ID=...VITE_TURNSTILE_SITE_KEY=...
cd server && npm install
cd ../client && npm installOpen two terminals.
Terminal 1 (backend):
cd server
npm run devTerminal 2 (frontend):
cd client
npm run devDefault local URLs:
- Frontend:
http://localhost:5173 - Backend health:
http://localhost:3001/api/v1/health
cd server && npm run build
cd ../client && npm run build- Local media storage works by default and does not require paid cloud storage.
- Recap video generation uses ffmpeg; bundled ffmpeg is included as dependency fallback.
- If Firestore is not configured, generation state falls back to in-memory state.
Root .gitignore is configured for:
- Node modules
- build artifacts
- env files
- local DB/uploads/logs
- planning files requested to stay untracked:
plan.jsontask.mdidea.md