Personal portfolio website of Michael Pumo — a freelance digital web designer and frontend developer crafting modern, performant web experiences.
This repository contains the source code for my personal portfolio. It showcases selected work, writing, and experiments — designed and built entirely by me. The site is server-side rendered for performance and SEO, with smooth page transitions and scroll-driven animations throughout.
| Category | Technology |
|---|---|
| Framework | Nuxt 4 (Vue 3) |
| Language | TypeScript |
| Styling | Tailwind CSS 4 |
| CMS | Storyblok |
| Animations | GSAP |
| Smooth Scroll | Lenis |
| Carousel | Keen Slider |
| Icons | Lucide |
| State | Pinia |
| Analytics | Plausible |
| Hosting | Netlify |
| Design | Figma |
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Lint
npm run lint
# Lint and auto-fix
npm run lint:fixapp/
├── assets/ # CSS, icons, logos, decorations
├── components/ # Vue components (blocks, cards, effects, UI)
├── composables/ # Reusable composition functions
├── pages/ # File-based routing
├── plugins/ # Nuxt plugins
├── stores/ # Pinia stores
├── storyblok/ # Storyblok component definitions
├── utils/ # Helper functions
public/ # Static assets (fonts, audio, favicons)
server/ # Server API routes (e.g. sitemap)
types/ # TypeScript type declarations
- Linting — ESLint with @antfu/eslint-config and Nuxt integration
- Commits — Enforced via Commitlint (Conventional Commits) and Husky git hooks
If you'd like to get in touch, visit michaelpumo.com for contact details. You might also be interested in my digital studio ditta.