Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hey, I'm Julian π
This is the source code of my personal portfolio at fraujulian.xyz. It's where I show who I am, what I work on, and how you can reach me.
I'm a full-stack developer from Austria. I care about reliable systems, clean code, and privacy. Most of my day happens on the move, usually on a train, and when I'm not coding, I'm probably scuba diving somewhere in an Austrian lake. π€Ώ
What you'll find on the site
- A short introduction about me and the skills I work with
- My current jobs and projects
- Ways to get in touch: email, phone, Signal, Gitea, and LinkedIn
- English and German versions (add
?lang=defor German) - A small portrait gallery: click the photo to see a bit more of my life
- Imprint and privacy information
Built with
I kept the stack small and modern on purpose:
- Angular 22 with standalone components, signals, and zoneless change detection
- TypeScript and SCSS
- Vitest for tests
- A tiny Node.js static server with security headers and compression
The site is fully static. There is no tracking, no cookies, and no third-party requests. Even the font is self-hosted. π
Running it locally
You need Node.js 24.15 or newer and npm 11.12 or newer.
npm ci
npm run dev
This generates the optimized assets and starts the dev server at
http://localhost:4200.
To build and serve the production version:
npm run build
npm start
The build lands in dist/browser, and the static server runs at
http://localhost:3000.
Tests and checks
npm run test
npm run check
npm run test runs the Vitest suite in jsdom. npm run check runs linting,
formatting, version, and source text checks. Please run it before you open a
pull request.
Project structure
src/app/home: the portfolio landing pagesrc/app/imprint: imprint and privacy pagesrc/app/footer: site footersrc/app/shared: reusable UI building blockssrc/app/services: language, preference, and SEO servicessrc/languages: English and German contentscripts: asset generation, versioning, and the static server
More notes:
License
The code is licensed under the GNU Affero General Public License v3.0. The content of the website, such as texts and photos, is mine and not covered by that license.
Thanks for stopping by! β¨