This Website
Ongoing Development
NuxtVue.jsTailwind CSSTypeScript
About the Project
This site is my portfolio: a showcase for the projects I build and the stack I work in. It started life as a Vue + Vue Router single-page app and was later migrated to Nuxt for server-side rendering, better SEO and file-based routing — so this very page is part of the project it describes.
Key Features
Architecture
- File-based routing through the pages directory
- Composables for typed, shared project data
- Reusable ProjectCard, ProjectStatus and ProjectBadge components
Presentation
- Responsive layout for all screen sizes
- Tailwind CSS for rapid styling
- Dark mode support inherited from the base stylesheet
Architecture & Structure
Original Stack
- Vue with the Composition API
- Vue Router for manual routing
- Vite as build tool
- Project data in a JSON file
Migration to Nuxt
- Vue Router replaced by file-based routing
- JSON data converted to typed composables
- Layouts and dedicated project pages added
Current Structure
- pages/ for routes
- components/ for shared UI
- composables/ for shared logic and data
- assets/ for styles
Meta: This very page you're reading is part of the project it describes — a recursive portfolio that documents itself.