mirror of
https://github.com/tobikli/portfolio.git
synced 2026-07-31 01:45:38 +02:00
Portfolio Site written in TS and Vue
https://tobiwn.me
- Vue 46.8%
- CSS 32%
- TypeScript 13.4%
- Typst 5.8%
- HTML 1.7%
- Other 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| .vscode | ||
| public | ||
| src | ||
| .editorconfig | ||
| .env | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| .prettierrc.json | ||
| env.d.ts | ||
| eslint.config.ts | ||
| flake.lock | ||
| flake.nix | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
Portfolio
Clean, animated personal portfolio built with Vue 3 + Vite. Content lives in simple Markdown files and a few small data helpers, so you can update sections without touching components.
NOTE: My live version of this site can be found here: tobiwn.me
Features
- Modern Vue 3 + Vite setup with motion and custom cursor details
- Content-first: projects, education, work, and publications pulled from Markdown
- Easy theming with Tailwind-style utility classes and light/dark support
- Popup-driven detail views for projects, CV, and publications (PDF preview included)
Quickstart
npm install
npm run dev
Recommended: Node 20 (package.json engines covers ^20.19.0 or >=22.12.0).
Customization
- Edit content in Markdown under src/data/content/... (projects, education, work, publications). Entries are ordered by filename, so use numeric prefixes (e.g., 05-latest.md … 01-oldest.md) to keep newest first.
- Adjust small data helpers in src/data if you add new fields. Components read from those typed loaders.
- Assets like PDFs for publications live in src/data/content/publications/papers; reference filenames in the Markdown frontmatter.
NOTE: More information on customization is here
Scripts
- Development: npm run dev
- Type-check: npm run type-check
- Build: npm run build
- Preview build: npm run preview
Environment
- VITE_GIT_HASH and VITE_GIT_BRANCH are set automatically by the npm scripts for build metadata; you normally do not need to set them manually.
- SET VITE_BASE_URL as your site URL and VITE_GITHUB_URL as the repository hosting your instance
Tech Stack
- Vue 3, Vite, TypeScript
- motion-v for animations
- @tato30/vue-pdf for inline PDF previews
- gray-matter for parsing Markdown content