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.
  • Mermaid Renderer: Support for rendering Mermaid diagrams within Markdown content.

πŸ› οΈ Technologies Used

πŸ“‚ Project Structure

.
β”œβ”€β”€ @types/             # Global TypeScript type definitions
β”‚   └── index.d.ts
β”œβ”€β”€ assets/             # Uncompiled assets (CSS, fonts)
β”‚   └── css/
β”‚       └── main.css
β”œβ”€β”€ components/         # Reusable Vue components
β”‚   β”œβ”€β”€ command-palette-button.vue
β”‚   β”œβ”€β”€ command-palette.vue
β”‚   β”œβ”€β”€ content/        # Components used by Nuxt Content
β”‚   β”‚   └── prose-pre.vue
β”‚   β”œβ”€β”€ footer.vue
β”‚   β”œβ”€β”€ image.vue
β”‚   β”œβ”€β”€ link.vue
β”‚   β”œβ”€β”€ mermaid.vue
β”‚   β”œβ”€β”€ music-notes.vue
β”‚   β”œβ”€β”€ music-presence.vue
β”‚   β”œβ”€β”€ navbar.vue
β”‚   └── theme-switch.vue
β”œβ”€β”€ composables/        # Reusable Vue composables (logic)
β”‚   β”œβ”€β”€ socials.ts
β”‚   β”œβ”€β”€ themes.ts
β”‚   └── work.ts
β”œβ”€β”€ content/            # Markdown content files (managed as a submodule)
β”‚   β”œβ”€β”€ posts/          # Blog posts (submodule content)
β”‚   └── post.md.template # Template for new posts
β”œβ”€β”€ pages/              # Application pages and routes
β”‚   β”œβ”€β”€ index.vue       # Home page
β”‚   β”œβ”€β”€ posts/
β”‚   β”‚   β”œβ”€β”€ [id].vue    # Dynamic page for single post
β”‚   β”‚   └── index.vue   # Blog posts list page
β”‚   └── work.vue        # Work experience page
β”œβ”€β”€ plugins/            # Nuxt plugins
β”‚   β”œβ”€β”€ medium-zoom.client.ts
β”‚   └── mermaid.client.ts
β”œβ”€β”€ public/             # Static files directly served
β”‚   β”œβ”€β”€ favicon.ico
β”‚   └── robots.txt
β”œβ”€β”€ server/             # Server-side logic
β”‚   β”œβ”€β”€ api/            # API routes
β”‚   β”‚   └── track.ts    # Last.fm tracking API
β”‚   └── tsconfig.json   # Server-specific TS config
β”œβ”€β”€ .env                # Environment variables (gitignored)
β”œβ”€β”€ .gitignore          # Files/directories ignored by Git
β”œβ”€β”€ .gitmodules         # Submodule configuration
β”œβ”€β”€ app.vue             # Main application layout/entry point
β”œβ”€β”€ content.config.ts   # Nuxt Content module configuration
β”œβ”€β”€ error.vue           # Custom error page (e.g., 404)
β”œβ”€β”€ LICENSE             # Project license file
β”œβ”€β”€ nuxt.config.ts      # Nuxt main configuration file
β”œβ”€β”€ package.json        # Project manifest (dependencies, scripts)
β”œβ”€β”€ README.md           # This file
β”œβ”€β”€ tailwind.config.js  # Tailwind CSS configuration
β”œβ”€β”€ tsconfig.json       # Main TypeScript configuration
└── yarn.lock           # Yarn dependency lock file

πŸš€ Getting Started

Prerequisites

Setup

Clone the repository and install dependencies:

# Clone the repo
git clone https://github.com/merloss/website.git # if you want to get existing posts, add '--recurse-submodules' flag
cd website

# If you already cloned without submodules, initialize them:
# git submodule update --init --recursive

# 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.


About

πŸ‰A website made with NuxtJS & TailwindCSS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •