Personal portfolio of Jet — Associate Software Engineer from the Philippines.
Live: https://themockingjet.github.io
Raw (AI-readable): https://themockingjet.github.io/raw/portfolio.md
- React 19 + Vite 8 + TypeScript 6
- CSS Modules (no Tailwind)
- motion for panel transitions
- Inline
parseFrontmatter()for frontmatter parsing (browser-safe, zero dependencies)
npm install
npm run dev| Command | Description |
|---|---|
npm run dev |
Start dev server (port 5173) |
npm run build |
Type-check + production build |
npm run preview |
Preview production build locally |
npm run lint |
ESLint |
npx vitest run |
Unit + integration tests |
npx playwright test |
E2E tests (requires npx playwright install) |
Output is in dist/. The file dist/raw/portfolio.md is the AI-readable version served at /raw/portfolio.md on GitHub Pages.
- Unit/Integration: Vitest + Testing Library (
tests/unit/,tests/integration/) - E2E: Playwright (
tests/e2e/) - Accessibility: axe-core via
@axe-core/playwright— runs full WCAG 2 AA audit in real browsers
npx vitest run # 58 unit/integration tests
npx playwright test # E2E (desktop + mobile viewports)All portfolio content lives in a single file:
src/content/portfolio.md
Edit this file to update the portfolio. No other files need to change.
src/
components/ Component modules (TSX + CSS Modules)
content/ portfolio.md (single source of truth)
lib/ Parsing, icons, utilities
styles/ Global CSS (variables, themes, resets)
tests/
unit/ Component unit tests
integration/ Cross-component integration tests
e2e/ Playwright browser tests
public/
textures/ Background textures