3 min read
Making a portfolio feel 3D without killing performance
Three.js, CSS perspective and a few rules that keep a 3D site fast on a normal laptop.
A 3D portfolio is memorable, but a stuttering one is forgettable. These are the rules I follow.
1. Load it late
The text must paint first. I mount the WebGL scene only after the browser is idle, and only if WebGL is actually available.
2. Render only when something moves
A background that spins forever burns battery. My scene stops drawing after a few seconds without scroll or pointer input and wakes on the next movement.
3. Cap the pixel ratio
Rendering at 3× on a phone is wasted work. Math.min(devicePixelRatio, 1.25) is invisible to the eye and much cheaper.
4. Use CSS 3D where it is enough
Card tilt, carousels and scroll reveals only need perspective and transform. They run on the GPU compositor and cost almost nothing compared with a canvas.
5. Respect reduced motion
Some visitors get motion sick. Check prefers-reduced-motion and fall back to a calm, flat version.
The result
One small WebGL scene, CSS 3D everywhere else, and a page that stays interactive while it animates. The trick is restraint: 3D should guide attention, not compete with your content.
Blog
4 min read
Building a RAG helpdesk that cites its sources
How retrieval, reranking and a strict prompt turn an LLM into an IT helpdesk agent people can actually trust.
- RAG
- LLM
- FastAPI
3 min read
From idea to deployed: shipping a full-stack AI project
A practical checklist for taking an AI prototype to something other people can use.
- Engineering
- Deployment
- AI