A high-performance, schema-driven portfolio generated from a single JSON source.
Live at: clystian.ninja | clystian.github.io
- Framework: Astro 6.4.8 (SSG)
- Styling: Tailwind CSS
- Package Manager: pnpm
- Code Quality: Biome 2.5.0 (linting & formatting)
- Data Schema: Manfred MAC (
manfred.json)
The site implements a Data-First approach. By using the Manfred MAC schema, the resume data is decoupled from the UI logic, allowing for easy updates and interoperability with other HR tools.
- Node.js (Latest LTS)
- pnpm
corepack enable pnpm
pnpm installpnpm devThis project uses Biome — a fast, unified linter and formatter (Rust-based).
# Check formatting & linting
pnpm check
# Auto-fix formatting issues
pnpm format
# Run lint checks only
pnpm lint# Validates types and builds the static site to /dist
pnpm run build
# Execute Playwright/Vitest suite
pnpm test
# Or run both:
pnpm test && pnpm buildTo update the portfolio content, modify the source of truth:
-
Edit
public/manfred.json(orsrc/data/manfred.jsondepending on your setup). -
The UI components reactively map the JSON nodes to Tailwind-styled components.
-
Commit changes to
mainto trigger the GitHub Actions deployment.
This repository uses GitHub Actions for automated deployment.
-
Branch:
maintriggers the build. -
Environment: GitHub Pages.
-
Custom Domain: Configured via
CNAMEin thepublic/directory.
The deploy workflow implements security best practices:
- Least privilege permissions — Job-level permission scoping
- Concurrency control — Only latest commit deploys; older runs cancelled
- Artifact validation — Ensures build dist directory exists before upload
See .github/workflows/deploy.yml for full CI/CD configuration.
- ✅ Upgraded
astroto 6.4.8 (fixes XSS, SSRF, path traversal advisories) - ✅ Upgraded
vitestto 4.1.9 - ✅ Pinned
esbuildto ^0.28.1 viapnpm.overrides - ✅ Zero known vulnerabilities (as of 2026-06-17)
Run pnpm audit to verify security status.
- All source code checked by Biome linter (run
pnpm check) - Automatic formatting on save (enable Biome VS Code extension)
- Type-safe TypeScript with strict mode enabled
The CVs included in this repository contain my personal and professional data, and they can't be automatically processed without my explicit permission according to the GDPR (General Data Protection Regulation).
The MAC format is free and open-source software licensed and distributed under the Creative Commons Attribution Share Alike 4.0 International (CC BY-SA 4.0 International).