Portfolio Website Techniques Overview
Development
2026-03-02
8 min read

Portfolio Website Techniques Overview

ReactViteTailwind CSSi18nTutorial

Introduction

This portfolio website is built using modern web development techniques. Here's a detailed breakdown of each technology and approach used.

1. React + Vite

The frontend is built with React, a popular JavaScript library for building user interfaces. We use Vite as the build tool because it's extremely fast and provides instant server start.

Key Benefits:

  • Fast HMR (Hot Module Replacement)
  • Optimized production builds
  • Simple configuration
  • 2. Tailwind CSS

    We use Tailwind CSS for styling - a utility-first CSS framework that allows rapid UI development.

    Why Tailwind?

  • No need to write custom CSS files
  • Consistent design system
  • Easy responsive design
  • Small bundle size (purges unused styles)
  • 3. Custom Hooks

    We created a custom hook called `usePortfolioData` to handle data fetching across the application.

    export const usePortfolioData = (fetchFunction) => {

    const [data, setData] = useState(null)

    const [loading, setLoading] = useState(true)

    const [error, setError] = useState(null)

    // ... fetch logic

    }

    This pattern allows reusable data fetching logic across all components.

    4. Internationalization (i18n)

    The website supports 3 languages: English, Thai, and Chinese. We implemented a custom i18n solution using context and localStorage.

    Features:

  • Language switcher in navbar
  • Persists language preference
  • All text translatable
  • 5. Service Layer Pattern

    We separated API calls from components using a service layer:

  • `api.js` - Low-level API functions
  • `portfolioService.js` - Business logic layer
  • This makes the code more maintainable and testable.

    6. Neo-Brutalism Design

    The UI follows Neo-Brutalism style with:

  • Bold black borders (4px)
  • Hard shadows (no blur)
  • Vibrant colors
  • Comic/sans-serif fonts
  • 7. Component Architecture

    We organized components into:

  • `components/Sections` - Page sections (About, Skills, Projects, etc.)
  • `components/ui` - Reusable UI components
  • `components/layout` - Layout components (Navbar, Footer)
  • `hooks` - Custom React hooks
  • `services` - API and business logic
  • `i18n` - Internationalization
  • Conclusion

    These techniques combine to create a fast, maintainable, and visually distinctive portfolio website.