Antonio Ledebuhr 255f0eace6 Stop the Pitch timeline from repeating dates and talking about omitted stations.
Roles keep the date in period only, self-employment is described as the work itself, and Home workplace copy stays plain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 13:13:40 +02:00
2026-01-21 04:59:55 +01:00
2026-01-21 04:59:55 +01:00
2026-01-21 07:56:54 +01:00
2026-01-21 08:02:49 +01:00

Portfolio

Bilingual portfolio for Antonio Ledebuhr, a software and DevOps engineer. German is the default language at /. English is the full second version under /en. Home speaks to small-company customers. /pitch is the recruiter-oriented page and is not in the primary navigation.

This repository is the Angular 21 standalone, zoneless, SSR application that serves both locales from one build.

Prerequisites

  • Node.js 22 or newer
  • npm 11 or newer (npm 12 prints an engine-compatibility warning on some Node 24 builds; that warning is not an error)

Install

npm install

Scripts

Script Description
npm start Start the Angular dev server.
npm run build Production build (default configuration), including SSR and prerendering.
npm run watch Development rebuild on change.
npm test Unit tests in watch mode.
npm run test:ci Unit tests once; exits when finished.
npm run lint Run ESLint.
npm run lint:fix Run ESLint with autofix.
npm run format Format the workspace with Prettier.
npm run format:check Check formatting without writing.
npm run serve:ssr Serve the production SSR bundle from dist/.
npm run serve:ssr:Portfolio Alias of serve:ssr.
npm run e2e Playwright + axe-core against the production SSR bundle.
npm run e2e:install Install the pinned Chromium build for Playwright.
npm run lighthouse Production build, then Lighthouse CI (lighthouserc.json).
npm run ci lint, format check, tests, then production build.
npm run cv:link Add the visible /pitch URL and link annotation to CV.pdf (idempotent).

Local SSR build

npm run build
npm run serve:ssr

The server listens on http://localhost:4000 unless PORT is set. The CV is copied into the browser output at /cv/CV.pdf. The header no longer offers that download; Pitch and the terminal navigate cv command still do. The lower-right terminal dock replaces the old centered command palette (Ctrl+K / ⌘K).

npm run e2e builds the SSR bundle and serves it on port 4173. npm run lighthouse builds, then starts the SSR server on port 4000. Browser binaries and generated reports (test-results, playwright-report, .lighthouseci) are not committed.

Project structure

src/app/core/          Typed contracts: locale, routing, navigation, content, platform
src/app/features/      One standalone page per route id
src/app/shared/        Reusable UI primitives
src/app/components/    Existing decorative widgets (skills, dot background)
src/styles.scss        Design tokens and global primitives
src/_breakpoints.scss  Breakpoint map and respond-to mixin
public/                Static SVG assets

Design tokens live in src/styles.scss as CSS custom properties. Content contracts and the placeholder provider live in src/app/core/content. Route ids and locale path tables live in src/app/core/routing.

Contributor and agent conventions are in AGENTS.md.

The Impressum (/impressum, /en/legal-notice) and Datenschutz (/datenschutz, /en/privacy) pages contain unreviewed placeholders. They must be checked by the site owner before publication.

Description
No description provided
Readme 2.1 MiB
Languages
TypeScript 87.9%
HTML 5.9%
SCSS 5.2%
JavaScript 1%