A personal portfolio website showcasing product design case studies, projects, and design challenges. Built with Astro.js and Tailwind CSS, featuring a minimal, content-focused design with dark mode support.
🌐 Live Site: nkrohit13.github.io
- 🎨 Dark/Light Mode - Theme switching with persistent preferences
- 📱 Fully Responsive - Mobile-first design approach
- 🎯 Grid Layout - Clean project grid with hover states
- 🖼️ Theme-Based Thumbnails - Different project images for light/dark modes
- 📑 Table of Contents - Dynamic TOC for project pages with smart scroll behavior
- 🏷️ Content Collections - Organized blog posts, projects, and challenges
- ⚡ View Transitions - Smooth page navigation
- 🔍 SEO Optimized - Canonical URLs, OpenGraph, sitemap, and RSS feed
- 📝 MDX Support - Write content in Markdown with React components
- 💬 Customizable Contact Section - Per-page contact messages
- Node.js 20+
- npm or yarn
# Clone the repository
git clone https://github.com/nkrohit13/nkrohit.github.io.git
# Navigate to project directory
cd nkrohit.github.io
# Install dependencies
npm install
# Start development server
npm run devThe site will be available at http://localhost:4321
├── public/ # Static assets (images, fonts, etc.)
├── src/
│ ├── components/ # Reusable Astro components
│ ├── content/ # Content collections (blog, projects, pages)
│ │ ├── blog/ # Blog posts (Markdown/MDX)
│ │ ├── projects/ # Project case studies
│ │ └── pages/ # Static pages (About, Contact, etc.)
│ ├── data/ # Site configuration
│ │ └── site-config.ts
│ ├── layouts/ # Page layouts
│ ├── pages/ # File-based routing
│ ├── styles/ # Global styles and Tailwind config
│ └── utils/ # Utility functions
├── astro.config.mjs # Astro configuration
└── tailwind.config.js # Tailwind CSS configuration
| Command | Action |
|---|---|
npm install |
Install dependencies |
npm run dev |
Start dev server at localhost:4321 |
npm run build |
Build production site to ./dist/ |
npm run preview |
Preview production build locally |
npm run astro |
Run Astro CLI commands |
- Create a new
.mdor.mdxfile insrc/content/projects/ - Add frontmatter:
---
title: "Project Name"
description: "Brief project description"
publishDate: 2024-01-15
seo:
image:
src: "/images/project-light.jpg"
alt: "Project preview"
darkImage: "/images/project-dark.jpg" # Optional: different image for dark mode
contactTitle: "Interested in this project?" # Optional: custom contact section
contactText: "Let's discuss how we can work together." # Optional
---- Write your content using Markdown/MDX
- Create a new file in
src/content/blog/ - Add frontmatter with title, excerpt, publishDate, and tags
- Write your post content
Edit src/data/site-config.ts to update:
- Site title, description, and metadata
- Navigation links
- Social media links
- Hero section content
- Contact information
Edit src/styles/global.css to customize color schemes for light and dark modes.
All components are in src/components/, including:
ProjectPreview.astro- Project card displayContact.astro- Contact sectionNav.astro- Navigation barFooter.astro- Site footer
This site automatically deploys to GitHub Pages when you push to the main branch.
# Build the site
npm run build
# Preview the build
npm run previewThe built site will be in the ./dist/ directory.
- No Grid/List Toggle - Enforced grid layout for consistent UX
- Simplified TOC - Server-side rendered table of contents with scroll-aware positioning
- Theme-Aware Images - Projects can have different thumbnails for light/dark modes
- Clean Design - Removed gradients and unnecessary hover effects
- Customizable CTAs - Each project/blog post can have unique contact section text
Licensed under the GPL-3.0 license.
Built on the Dante Astro Theme by JustGoodUI
Nirmal Rohit - Freelance Product Designer
📧 [email protected]
