Modern personal portfolio showcasing live GitHub activity, daily LeetCode progress, current projects, and long-form writing. Built with Next.js, Supabase, and a secure admin dashboard so updates stay effortless.
- Roadmap:
docs/roadmap.md - Phase tasks:
docs/tasks.md - Detailed setup notes:
learnings/setup-notes.md
Always review those documents before making changes; they define the current priorities, phase branches, and conventions.
- Next.js 15 (App Router) + React 19 + TypeScript
- Tailwind CSS 4 + shadcn/ui component primitives
- Supabase (Postgres, Row Level Security, Storage)
- NextAuth (GitHub OAuth) for admin access
- GitHub Actions for CI/CD and scheduled activity syncs
- pnpm for dependency management
# install dependencies
pnpm install
# run the dev server
pnpm dev
# lint, type-check, and test
pnpm lint
pnpm typecheck
pnpm test -- --run
# format the codebase
pnpm formatThe app serves on http://localhost:3000 by default. Build with pnpm build to validate the production bundle.
Copy .env.example into .env.local and fill in the secrets:
GITHUB_PERSONAL_ACCESS_TOKENSUPABASE_URL,SUPABASE_ANON_KEY,SUPABASE_SERVICE_ROLE_KEYLEETCODE_SESSIONRESEND_API_KEY- optional extras (Redis, Postgres connection strings) as needed
Additional values will be documented in docs/project-overview.md as the project evolves.
- Default branch:
main - Active work happens on phase branches (
phase/00-discovery,phase/01-foundation, etc.) - Feature-specific branches fork from the active phase branch (
feature/phase-03-project-gallery) - Pull requests require passing CI and review before merging
- Scaffold Next.js app with pnpm
- Configure ESLint, Prettier, Husky, lint-staged, Commitlint
- Add placeholder pages and shared layout
- Introduce
.env.example - Create CI workflow (
.github/workflows/ci.yml)
Track status in docs/tasks.md and learnings/setup-notes.md.
docs/phase-XX-*.md- phase goals, tasks, acceptance criteriadocs/project-overview.md- master plan, tech choices, budgetdocs/tasks.md- actionable checklistdocs/setup.md- local setup instructionsdocs/mcp-setup.md- how to provision MCP tokenslearnings/setup-notes.md- log of commands, reasoning, and lessons
- Configuration:
.cursor/mcp.json - Token guide:
docs/mcp-setup.md
Launch the relevant server (shadcn, GitHub, Supabase, Prisma, Postgres, git, fetch) whenever you work in its domain to guarantee up-to-date context.
- Checkout the relevant phase branch (current:
phase/01-foundation). - Run
pnpm lint,pnpm typecheck, andpnpm test -- --runbefore committing. - Update documentation whenever behaviour changes.
- Open a PR against the phase branch; await review and CI green.
- Merge phase into
mainonly after acceptance criteria pass.
TBD - choose a license once project requirements are finalized.