Web2026Live product
Personal Portfolio
The portfolio you are viewing: a static Next.js site designed for accessibility and privacy, served from a Raspberry Pi.
- Platforms
- Website · Self-hosted
- Focus
- No analytics · Accessibility · Self-hosted
Project view
Visit the live project (opens in a new tab)The story
The problem
I wanted a portfolio that felt personal, loaded quickly, and worked well without relying on visitor tracking.
What it delivers
I built a business-card-inspired landing page and a collection of lightweight project case studies, with keyboard accessibility and privacy in mind.
At a glance
No analytics
The site does not use analytics or visitor-tracking scripts.
Accessibility
Navigation and components are designed for keyboard and screen-reader use.
Self-hosted
A Raspberry Pi serves the static export through nginx, with public access routed through a Cloudflare Tunnel.
Built with
- Next.js
- React
- TypeScript
- Tailwind CSS
- nginx
- Cloudflare
- Raspberry Pi
Static by design
Next.js exports the pages as static files, avoiding a continuously running application server for the portfolio itself.
Accessibility in practice
The UI includes semantic landmarks, visible focus states, sufficient text contrast, and reduced-motion support.
Continue exploring
More projects
- Web2026Cinelas — Movie & TV DiscoveryA live film and TV platform for discovering titles, tracking what you watch, and finding where to stream them.
- Web2026Online BookingA booking flow for customers and a real-time dashboard for staff managing appointments.
- Security Lab2026SOC Home Lab: SSH Brute-Force Detection with Wazuh SIEMFrom failed SSH logins to a live SIEM alert: a custom Wazuh rule and a separate file-integrity investigation.