Personal website
Personal portfolio and blog built with Next.js and Sanity CMS. Features a project showcase, blog with tag filtering, photo gallery with lightbox, and an embedded Studio for content management.

Built from scratch as both a portfolio and a writing space. The site is statically generated with Next.js App Router and pulls all content from Sanity. No hardcoded data outside the codebase. The embedded Sanity Studio lives at /studio so there's no separate deployment to manage.
The gallery supports a fullscreen lightbox with keyboard and swipe navigation. The blog supports two post types (posts and guides) with tag-based filtering. Every page revalidates content from Sanity every 60 seconds so updates in the Studio appear on the live site within a minute.
Dark and light mode, a clock showing local Pančevo time, Open Graph images, sitemap, and share buttons on every post and project.