35 lines
2.2 KiB
Markdown
35 lines
2.2 KiB
Markdown
# Discovery brief (2026-10-10)
|
|
|
|
Synthesized from two read-only Haiku mapping passes of commit 08f3ac1 plus a look at the running site.
|
|
|
|
## Stack
|
|
Vue 3.5 + TypeScript, Vite 8, three 0.185 (EffectComposer, bloom), zod, Geist fonts. SSR + prerender to static HTML with hydration. Vitest, Playwright (+axe). Node 22.
|
|
|
|
## Run
|
|
- `npm run dev` (vite on 127.0.0.1)
|
|
- `npm run typecheck`, `npm run test:unit`, `npm run test:browser`
|
|
- `npm run build:preview` = full static build with budgets
|
|
|
|
## Structure
|
|
Single page, hash sections: start, profile, experience, infrastructure, selected-builds, additional-work, toolkit, contact.
|
|
`src/components` (HeroJourney, SceneCanvas, ProjectCard, ...), `src/scene` (three world), `src/journey` (scroll/nav controllers, road signs), `src/audio` (adaptive soundtrack), `src/styles` (8 layered CSS files), `src/content` (zod schemas).
|
|
|
|
## Content (preserve)
|
|
`content/public/portfolio-content.json`: Luca Pîslaru, System Administrator & Full-Stack Developer, Bucharest. Three roles, systems proof (Nextcloud migration, self-hosted platform), selected and additional projects, toolkit, education, languages, LinkedIn/GitHub/GitLab/email contact. Media in `inputs/prepared-assets`.
|
|
|
|
## Current identity
|
|
Dark night-drive grand-tourer: fixed WebGL car/road scene behind content, scroll drives the camera, road-sign navigation, adaptive soundtrack. Palette canvas #040814, cyan #78d8e5, magenta #c74b91, amber #f4ad67. Geist + Geist Mono.
|
|
|
|
## Works well
|
|
Strong content hierarchy, semantic no-JS/reduced-motion fallbacks, strict a11y and budget testing, native scrolling.
|
|
|
|
## Weaknesses
|
|
- Scroll perf: 71 fps with chapter masks vs 116 without (docs/performance).
|
|
- ~2.4 MB of GLB models; heavy on mobile.
|
|
- 8 overlapping stylesheets, repeated media queries.
|
|
- Screen-reader and audience validation still pending.
|
|
- The one-note "car on a road" metaphor says little about sysadmin + full-stack work.
|
|
|
|
## Must preserve
|
|
All content and links; CSP/nginx/Cloudflare deploy contracts (nginx test asserts exact headers); performance budgets (initial JS 120 KB, HTML+CSS 100 KB, fonts 120 KB); test-hook gating (`__PORTFOLIO_TEST_BUILD__` false in production); prerender markers in index.html.
|