← Back to Tony's Portfolio

Personal Website Development

A responsive multilingual website built to share travel memories, photo albums, blog posts, adventures, and portfolio projects through a clean and maintainable content system.

Problem

Managing photos, travel albums, blog posts, adventures, languages, and updates manually can quickly become difficult as the website grows.

I wanted a website that was easy to update without editing every page manually, while still keeping the design clean, responsive, and personal.

Solution

I built a custom HTML, CSS, and JavaScript website where content is loaded dynamically from Google Sheets, making it easier to update galleries, adventures, blog posts, and homepage content.

I structured the site around reusable components, shared translation keys and data-driven sections so common elements such as navigation, headers, footers and repeated project content can be maintained more consistently across the website.

The site has continued to grow with multilingual support, dark mode, gallery albums, a travel map, visitor analytics, searchable content and an interactive portfolio project finder while keeping the same underlying structure.

Key Features

  • Google Sheets powered content system
  • Dynamic gallery albums and homepage previews
  • Travel map with album locations
  • Multilingual support for English, Swedish, and Vietnamese
  • Dark mode and responsive design
  • Blog and adventure sections with searchable content
  • Visitor event tracking and analytics dashboard
  • Interactive portfolio project finder with searchable project tags
  • Reusable shared components and centralized translation keys across the site

Tools Used

HTML CSS JavaScript Google Sheets OpenSheet Leaflet Lightbox

Result

The website has grown from a simple personal site into a reusable and maintainable content platform for travel memories, albums, blog posts, adventures, portfolio projects and other personal content.

Using shared components, centralized translations and data-driven content makes it easier to expand the site without rebuilding the same structure for every new page or feature.