Skip to content

Merloss/website

Repository files navigation

My Personal Website & Blog

This repository contains the source code for my personal website and blog, built with Nuxt 3 and styled with Tailwind CSS.

✨ Features

  • Blog: Markdown-based content management using Nuxt Content.
  • Command Palette: Quick navigation and actions (Ctrl/Cmd + K).
  • Last.fm Integration: Displaying current music presence (if configured).
  • Dark Mode: Theme switching support.
  • SEO Friendly: Meta tags automatically generated for pages and posts.
  • Responsive Design: Adapts to different screen sizes.
  • Page Transitions & Animations: Smooth transitions and entry animations using VueUse Motion.

πŸ› οΈ Technologies Used

πŸ“‚ Project Structure

.
β”œβ”€β”€ assets/
β”‚   └── css/
β”‚       └── main.css  # Global styles and Tailwind directives
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ command-palette.vue # Command palette component
β”‚   β”œβ”€β”€ footer.vue      # Site footer
β”‚   β”œβ”€β”€ image.vue       # Image component with blurhash
β”‚   β”œβ”€β”€ link.vue        # Custom link component (e.g., with UTM)
β”‚   β”œβ”€β”€ music-presence.vue # music presence component (Last.fm)
β”‚   └── navbar.vue      # Site navigation bar
β”œβ”€β”€ constants/
β”‚   β”œβ”€β”€ socials.ts    # Social media links
β”‚   └── work.ts       # Work experience data
β”œβ”€β”€ content/            # Markdown files for blog posts
β”‚   └── posts/
β”‚       └── ...
β”œβ”€β”€ layouts/            # Layout files (if any, Nuxt uses app.vue by default)
β”œβ”€β”€ node_modules/     # Project dependencies
β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ index.vue       # Home/About page
β”‚   β”œβ”€β”€ posts/
β”‚   β”‚   β”œβ”€β”€ [id].vue    # Individual blog post page
β”‚   β”‚   └── index.vue   # Blog posts list page
β”‚   └── work.vue        # Work experience page
β”œβ”€β”€ public/             # Static assets (e.g., favicon, robots.txt)
β”œβ”€β”€ app.vue             # Main application layout/entry point
β”œβ”€β”€ error.vue           # Custom error page (e.g., 404)
β”œβ”€β”€ nuxt.config.ts      # Nuxt configuration file
β”œβ”€β”€ package.json        # Project dependencies and scripts
β”œβ”€β”€ README.md           # This file
└── tsconfig.json       # TypeScript configuration

πŸš€ Getting Started

Prerequisites

Setup

Clone the repository and install dependencies:

# Clone the repo
git clone https://github.com/merloss/website.git
cd website

# Install dependencies (choose your package manager)

# npm
npm install

# pnpm
pnpm install

# yarn
yarn install

# bun
bun install

Development Server

Start the development server on http://localhost:3000:

# npm
npm run dev

# pnpm
pnpm dev

# yarn
yarn dev

# bun
bun run dev

The server will automatically reload when you make changes to the code.