A personal portfolio website built with Angular 19 and SSR, organized as an Nx monorepo.
- Framework: Angular 19 with Server-Side Rendering (SSR)
- UI Library: Angular Material
- Monorepo: Nx
- Testing: Jest (unit), Vitest (unit), Playwright (e2e)
- Component Explorer: Storybook
- Linting: ESLint with Prettier
npm installStart the dev server (available at http://localhost:4200):
npx nx serve frontendStart with SSR in development mode:
npx nx serve-ssr frontendBuild the app for production:
npx nx build frontendBuild with prerendering:
npx nx prerender frontendRun all unit tests:
npx nx run-many -t testRun unit tests for a specific project:
npx nx test frontendRun end-to-end tests:
npx nx e2e frontend-e2eLint all projects:
npx nx run-many -t lintFormat code with Prettier:
npx nx format:writeStart Storybook for component development:
npx nx storybook frontendapps/
frontend/ # Angular SSR application
frontend-e2e/ # Playwright e2e tests
libs/
data-access/ # Data models and state (projects, taxonomy, etc.)
feature/ # Feature components (about-me, project-list, skills, contact, etc.)
ui/ # Reusable UI components
util/ # Utilities and shared styles
Commits must follow Conventional Commits (enforced via commitlint and Husky).
<type>(<scope>): <emoji> <short description>
Example: feat(frontend): ✨ add dark mode toggle