Skip to content

Latest commit

 

History

History
62 lines (44 loc) · 4.27 KB

File metadata and controls

62 lines (44 loc) · 4.27 KB

DoctorDerek.com

Production Codecov ESLint, Vitest, and XState Playwright

The public website and engineering portfolio of Dr. Derek Austin, built to present six live projects and the engineering behind them.

Mobile Web Lighthouse Measurements

Latest successful automated Lighthouse scores for the canonical production website, measured with Lighthouse’s standard mobile emulation against doctorderek.com. The badges and linked HTML report come from the audit with the median performance score among five production runs.

Mobile Web Lighthouse Performance Mobile Web Lighthouse Accessibility Mobile Web Lighthouse Best Practices Mobile Web Lighthouse SEO

Tech Stack

This repository contains the full-stack Next.js source code for my public portfolio hub.

  • Framework: Next.js 16, React 19
  • Language: TypeScript 6 (Strict Mode)
  • Styling: Tailwind CSS v4
  • State: XState v5
  • Motion and Rendering: Motion, Rive, HTML Canvas, and fullPage.js
  • Quality: Vitest, React Testing Library, Playwright, and Codecov
  • Deployment: Vercel and GitHub Actions

Architectural Highlights

  • Deterministic Global State: An XState parallel machine owns logo and background transitions outside the React render cycle (machines/globalMachine.ts).
  • Motion-Aware Interaction: The browser’s prefers-reduced-motion signal controls fullPage.js effects, Motion transitions, Rive ambience, and particle rendering.
  • Server-Rendered Publishing Feed: Next.js fetches, cleans, and revalidates the live Medium RSS feed before handing posts to the client experience.
  • AI-Assisted Engineering with Human Verification: Functional specifications and persistent project context guide implementation; strict TypeScript, automated tests, and manual QA verify the result.

Links

Local Development

Use fnm for Node version management and pnpm as the package manager. In PowerShell:

fnm env --use-on-cd | Out-String | Invoke-Expression
fnm use
corepack enable pnpm
pnpm install
pnpm dev

Verification

Run the complete local quality gate before submitting changes:

pnpm format
pnpm lint
pnpm exec tsc --noEmit
pnpm exec vitest run --coverage
pnpm build
pnpm test:e2e
pnpm audit --prod