CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a Jekyll-based personal blog/website hosted on GitHub Pages at mandar.dev. It uses a custom “Minimalist Scholar” theme with a modular architecture designed for thought leadership and technical writing.
Development Commands
Local Development Server
bundle exec jekyll serve
Or on Windows:
run_dev_server.bat
The site will be available at http://localhost:4000.
Dependency Management
bundle install # Install Ruby dependencies
bundle update # Update dependencies
Architecture
Directory Structure
Content:
_posts/- Blog posts in markdown (format:YYYY-MM-DD-title.md)_drafts/- Unpublished blog drafts_data/projects.yml- Projects data for the /projects/ pageprojects/- Individual project folders (e.g., susies-quest/, market-heatmap/)
Theme/Layout:
_layouts/- Page templates (default, home, post, page, projects, redirected)_includes/- Reusable components (header, footer, newsletter, share-buttons, author-bio, conversation)_sass/- Modular SCSS files organized by purpose:_variables.scss- Design tokens (colors, fonts, spacing)_base.scss- Reset and typography foundations_layout.scss- Header, footer, containers_components.scss- Buttons, cards, forms_posts.scss- Blog post styles_pages.scss- Static page styles_animations.scss- Animation definitions
assets/- Static assets (images, compiled CSS)
Configuration
Primary configuration in _config.yml includes:
- Site metadata (title, description, URL)
- Author information
- Social links
- Newsletter settings
- Plugins (jekyll-feed, jekyll-sitemap, jekyll-redirect-from)
- Permalink structure
- Build settings
Adding Content
New Blog Post
Create a file in _posts/ with format YYYY-MM-DD-title.md:
---
layout: post
title: "Post Title"
date: YYYY-MM-DD
description: "Brief description for SEO and social cards"
snippet: "Short summary for sharing (1-2 sentences)" # Optional
image: /assets/images/post-image.png # Optional
twitter_url: "https://twitter.com/username/status/ID" # Optional - link to discussion thread
hackernews_url: "https://news.ycombinator.com/item?id=ID" # Optional - link to HN discussion
tags:
- tag1
- tag2
---
Post content here...
Discussion Links:
- If
twitter_urlis provided, the “Discuss on Twitter” button links to that specific thread - If
twitter_urlis not provided, it falls back to a tweet intent with the post title - If
hackernews_urlis provided, a “Discuss on Hacker News” button appears - Both fields are optional and can be added after publishing
New Project
- Add project data to
_data/projects.yml: ```yaml- name: “Project Name” description: “Brief description” url: “/projects/project-name” tags:
- Technology
- Category
icon: ‘
’
external: true # Optional, opens in new tab
```
- Create project folder in
projects/project-name/with its own files
Theme Customization
The modular Sass architecture allows easy customization:
- Colors/Fonts - Edit
_sass/_variables.scss - Layout Changes - Edit
_sass/_layout.scss - Component Styles - Edit
_sass/_components.scss - Typography - Edit
_sass/_base.scss
All SCSS files are imported in assets/css/main.scss.
Deployment
The site is deployed to GitHub Pages automatically when changes are pushed to the site branch. No manual build step is required - GitHub Pages runs Jekyll automatically.
Plugin Configuration
The site uses several Jekyll plugins configured in Gemfile:
jekyll-feed- RSS feed generationjekyll-sitemap- Automatic sitemap generationjekyll-redirect-from- URL redirects (see_layouts/redirected.html)jekyll-paginate- Post pagination
Shortlinks (e.g., /linkedin, /twitter) are managed via markdown files in shortlinks/ with redirect_to frontmatter.