Personal website built with Next.js 15 and Tailwind CSS. Static export deployed to GitHub Pages.
Drop a Markdown file into the relevant folder — no other config needed.
| Section | Folder | Route |
|---|---|---|
| Projects | content/projects/ |
/projects/[slug] |
| Blog posts | content/blog/ |
/blog/[slug] |
| Book reviews | content/books/ |
/books/[slug] |
Each file needs a frontmatter block at the top:
Project (content/projects/my-project.md):
---
title: "My Project"
date: "2025-01-15"
description: "Short description shown on cards"
tags: ["Python", "Cloud"]
github: "https://github.com/you/repo" # optional
featured: true # show on homepage grid
---
Content here...Blog post (content/blog/my-post.md):
---
title: "Post Title"
date: "2025-01-15"
description: "Short description"
tags: ["Tag"]
---Book review (content/books/book-slug.md):
---
title: "Book Title"
date: "2025-01-15"
authors: ["Author Name"]
tags: ["finance"]
---Standard Markdown is supported (headings, code blocks, tables, blockquotes, links, images). Images go in public/img/ and are referenced as /img/filename.png.
Prerequisites: Node.js 18+
npm install
npm run devThe site runs at http://localhost:3000. Changes to content files and components hot-reload automatically.
To check the production build locally:
npm run build # generates static files in out/
npx serve out # or any static file serverThe site is hosted on GitHub Pages from the gh-pages branch. Deployment is handled by a GitHub Actions workflow that:
- Triggers on push to
main - Runs
npm run build— Next.js outputs static HTML/CSS/JS toout/ - Pushes the contents of
out/to thegh-pagesbranch - GitHub Pages serves the
gh-pagesbranch atnikulpatel3141.github.io
To deploy manually (if needed):
npm run build
# then push out/ to gh-pages branch, or use gh-pages npm package├── app/ # Next.js App Router pages
│ ├── page.tsx # Homepage
│ ├── projects/ # /projects and /projects/[slug]
│ ├── blog/ # /blog and /blog/[slug]
│ └── books/ # /books and /books/[slug]
├── components/ # Shared React components
├── content/ # Markdown content (edit these)
│ ├── projects/
│ ├── blog/
│ └── books/
├── lib/
│ └── content.ts # Reads and parses content files
├── public/ # Static assets (images, fonts, JS)
└── tailwind.config.ts # Tailwind configuration