Skip to content

My personal website! (readme vibecoded)

Notifications You must be signed in to change notification settings

gamerwaves/website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 18, 2026
28f5d6b · · Jan 18, 2026

History

28 Commits
Dec 7, 2025
Jan 18, 2026
Jan 18, 2026
Jan 4, 2026
Dec 7, 2025
Dec 7, 2025
Dec 7, 2025
Dec 7, 2025
Dec 7, 2025
Jan 18, 2026
Jan 18, 2026
Dec 7, 2025
Dec 7, 2025
Dec 7, 2025
Jan 4, 2026

Repository files navigation

Portfolio Website

A modern, full-stack portfolio website built with SvelteKit, featuring a blog system, contact management, and admin panel.

Features

Public Features

  • Responsive design optimized for mobile and desktop
  • Project showcase with live demo and repository links
  • Skills and expertise sections
  • Contact form with auto-reply functionality
  • Blog with markdown support
  • Hidden admin access (click copyright symbol 5 times)

Admin Panel

  • Secure authentication with password protection
  • Blog post management (create, edit, delete, publish/draft)
  • Contact management system with email threading
  • Markdown support for email replies with live preview
  • SMTP integration for sending emails
  • IMAP integration for receiving replies
  • Contact numbering system for tracking conversations
  • Status tracking (new, replied, closed)

Technical Features

  • MongoDB for data storage
  • Email system with markdown-to-HTML conversion
  • Automatic reply on form submission
  • Email thread matching by contact number
  • Duplicate prevention and cleanup tools
  • Mobile-responsive throughout

Tech Stack

  • Framework: SvelteKit
  • Styling: Tailwind CSS
  • Database: MongoDB
  • Email: Nodemailer (SMTP), IMAP
  • Markdown: Marked, html-to-text
  • Language: TypeScript

Setup

Prerequisites

  • Node.js 18+
  • MongoDB database (MongoDB Atlas recommended)
  • Email account with SMTP/IMAP access (Gmail recommended)

Installation

  1. Clone the repository:
git clone https://github.com/gamerwaves/website.git

cd website
  1. Install dependencies:
pnpm install
  1. Configure environment variables: Create a .env file in the root directory:
ADMIN_PASSWORD=your-secure-password

MONGODB_URI=mongodb+srv://username:[email protected]/portfolio


SMTP_HOST=smtp.gmail.com

SMTP_PORT=587

SMTP_USER=[email protected]

SMTP_PASS=your-app-password


IMAP_HOST=imap.gmail.com

IMAP_PORT=993

IMAP_USER=[email protected]

IMAP_PASS=your-app-password

For Gmail, generate an App Password at https://myaccount.google.com/apppasswords

Development

Running Locally

pnpm run dev

Building for Production

pnpm run build

Preview Production Build

pnpm run preview

Admin Access

Access the admin panel at /admin or click the copyright symbol in the footer 5 times.

Admin Features

  • Blog Management: Create and edit blog posts with markdown
  • Contact Management: View messages, reply with markdown formatting, track conversation threads
  • Email Sync: Manually sync replies from IMAP
  • Cleanup Tools: Remove duplicates and convert HTML emails to text

Project Structure

src/
├── lib/
│   ├── server/
│   │   ├── db.ts          # MongoDB connection
│   │   └── email.ts       # Email utilities
│   └── stores/
│       └── blog.ts        # Blog types
├── routes/
│   ├── admin/
│   │   ├── contacts/      # Contact management
│   │   └── +page.svelte   # Admin dashboard
│   ├── api/
│   │   ├── contact/       # Contact form API
│   │   ├── sync-replies/  # Email sync API
│   │   └── cleanup-contacts/ # Cleanup API
│   ├── blog/
│   │   ├── [slug]/        # Individual blog posts
│   │   └── +page.svelte   # Blog listing
│   └── +page.svelte       # Homepage
└── app.css                # Global styles
   # Global styles

Author

Dwait Pandhi

About

My personal website! (readme vibecoded)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published