This is the site you're browsing. I rebuilt my portfolio on Next.js 16 so it loads fast, and gives that modern website vibe. Built with a strong attention to detail and many animations. Enjoy!
Highlights
- Theme system spans light, dark, and a set of accent palettes, and syncs text selection highlights to whichever palette is active.
- Landing hero layers animated gradients, a typewriter headline, and smooth scroll cues to lead people into the projects section.
- Testimonial marquee lets visitors pause on hover, expands longer reviews, and flips bilingual cards between French and English.
- Homepage leads with a live search demo that types its own query as it scrolls into view, running against the semantic search platform with a static fallback if the request is slow.
- About page runs a two-lane animated timeline on a real date axis, with a playhead sweeping study and employment milestones in parallel.
- Dedicated search page embeds the semantic search widget, so the whole site is searchable by meaning rather than keywords, with AI-generated summaries.
- Projects and blog posts support text searching, category filters, and can have custom sliding image galleries embedded within them.
- Blog posts track view counts, deduplicated per browsing session, and can serve a rate-limited PDF download with a live download counter.
- Blog articles autogenerate a sticky table of contents with scroll tracking, and a scroll-to-top button.
- Contact flow uses React Hook Form + Zod with Redis rate limiting and Resend email sending.
- AI chat agent provides a conversational interface to explore the portfolio, using LLMs trained on the site's content; with chat sound effects, time-based greetings, markdown rendering, and a typing indicator.
- Feedback popover lets visitors easily flag any site issues or leave suggestions for Tom, saving message drafts between pages for ease of use.
- One of my favourites is the steaming coffee in the footer.
It does the job and gives the vibe I have been envisioning from the start :)
