How esardorbe/devfolio works
Devfolio lets engineers create and manage a portfolio, then publish a public profile and export it as PDF or DOCX. The principal flow is account registration and email verification or OAuth, authenticated editing of profile sections, and public viewing; profile analytics and AI bio generation are additional capabilities. The graph focuses on runtime product components. README documents AI, exports, uploads, analytics, and OAuth, but available excerpts do not show every integration's implementation or wiring, so some relationships are omitted.
Main entry points: page.tsx Portfolio editor · prisma.service.ts PostgreSQL data · users.service.ts User profiles · auth.api.ts Auth client
Components 26
Web experience
- Sign-in pages
apps/web/src/app/(auth)/login/page.tsx - Auth client
apps/web/src/services/auth.api.ts - Auth state
apps/web/src/store/auth.store.ts - Portfolio editor
apps/web/src/app/dashboard/page.tsx - Public portfolio
apps/web/src/app/u/[username]/page.tsx - AI bio endpoint
apps/web/src/app/api/generate-bio/route.ts - Portfolio export
apps/web/src/components/ExportModal.tsx - PDF rendering
apps/web/src/lib/export/pdf-templates.tsx - DOCX generation
apps/web/src/lib/export/docx-export.ts
Identity
- Auth routes
apps/api/src/auth/auth.controller.ts - Auth service
apps/api/src/auth/auth.service.ts
Portfolio API
- User profiles
apps/api/src/users/users.service.ts - Projects
apps/api/src/projects/projects.service.ts - Skills
apps/api/src/skills/skills.service.ts - Work experience
apps/api/src/experiences/experiences.service.ts - Education
apps/api/src/educations/educations.service.ts - Certificates
apps/api/src/certificates/certificates.service.ts - Profile analytics
apps/api/src/users/users.controller.ts - File uploads
apps/api/src/users/users.controller.ts
Persistence and integrations
- Verification email
apps/api/src/email/email.service.ts - PostgreSQL data
apps/api/src/prisma/prisma.service.ts
Other components
- Engineer
- Profile visitor
- Google / GitHub
- OpenAI
- AWS S3
Connections 31
- Engineer → Sign-in pages: register or sign in
apps/web/src/app/(auth)/login/page.tsx - Sign-in pages → Auth client: calls auth
apps/web/src/app/(auth)/login/page.tsx - Auth client → Auth routes: HTTP auth requests
apps/web/src/services/auth.api.ts - Auth routes → Auth service: dispatches auth
apps/api/src/auth/auth.controller.ts - Auth service → PostgreSQL data: reads and writes
apps/api/src/auth/auth.service.ts - Auth service → Verification email: sends OTP
apps/api/src/auth/auth.service.ts - Google / GitHub → Auth routes: OAuth callback
apps/api/src/auth/auth.controller.ts - Auth client → Auth state: auth token flow
- Engineer → Portfolio editor: edits portfolio
README.md - Portfolio editor → User profiles: profile operations
- Portfolio editor → Projects: manages projects
- Portfolio editor → Skills: manages skills
- Portfolio editor → Work experience: manages experience
- Portfolio editor → Education: manages education
- Portfolio editor → Certificates: manages certificates
- User profiles → PostgreSQL data: reads and writes
apps/api/src/users/users.service.ts - Projects → PostgreSQL data: reads and writes
apps/api/src/projects/projects.service.ts - Skills → PostgreSQL data: reads and writes
apps/api/src/skills/skills.service.ts - Work experience → PostgreSQL data: reads and writes
apps/api/src/experiences/experiences.service.ts - Education → PostgreSQL data: reads and writes
apps/api/src/educations/educations.service.ts - Certificates → PostgreSQL data: reads and writes
apps/api/src/certificates/certificates.service.ts - Profile visitor → Public portfolio: views profile
README.md - Public portfolio → User profiles: fetches public profile
- User profiles → Profile analytics: records profile views
apps/api/src/users/users.controller.ts - Engineer → AI bio endpoint: requests bio
README.md - AI bio endpoint → OpenAI: generates bio
- Engineer → Portfolio export: exports portfolio
README.md - Portfolio export → PDF rendering: renders PDF
- Portfolio export → DOCX generation: generates DOCX
- Engineer → File uploads: uploads files
README.md - File uploads → AWS S3: stores files