Blog Management Guide

Complete guide for writing, managing, and publishing blog posts on this Jekyll-based technical blog.

✍️ Writing a New Blog Post

Quick Start

  1. Create a new file in _posts/ directory

    File naming convention: YYYY-MM-DD-title-with-dashes.md

    Example: 2026-02-02-my-first-blog-post.md

  2. Add front matter at the top

---
layout: post
title: "Your Post Title"
date: 2026-02-02 10:00:00 -0000
categories: [distributed-systems, architecture]
tags: [kubernetes, microservices, scalability]
author: Rakesh Navale
excerpt: "A brief summary of your post that appears in listings"
linkedin_article_url: "https://www.linkedin.com/pulse/your-linkedin-article-url"
---
  1. Write your content in Markdown

  2. Commit and push

git add _posts/2026-02-02-your-post.md
git commit -m "Add blog post: Your Post Title"
git push

GitHub Pages will automatically build and deploy within minutes!

Front Matter Fields Explained

πŸ“ Working with Drafts

Store work-in-progress posts in _drafts/ folder:

# Create draft (no date prefix needed)
touch _drafts/my-draft-post.md

# Preview drafts locally
./scripts/jekyll-local serve --drafts

# Publish: move to _posts/ with date
mv _drafts/my-draft-post.md _posts/2026-02-02-my-draft-post.md

🎨 Adding Images

  1. Store images in organized folders
assets/images/2026/02/my-image.png
  1. Reference in posts
![Alt text](/navalerakesh/assets/images/2026/02/my-image.png)

Note: Use /navalerakesh/ prefix for all asset paths since the site is served from that subdirectory.

  1. Optimize images before adding (use TinyPNG, ImageOptim, etc.)

πŸ“‚ Categories and Tags

Categories (Broad Topics)

Use for high-level organization:

Tags (Specific Keywords)

Use for detailed topics and technologies:

πŸ’» Local Development

Prerequisites

Setup

# Clone repository
git clone https://github.com/navalerakesh/navalerakesh.git
cd navalerakesh

# Install dependencies
bundle install

# Serve locally with live reload
./scripts/jekyll-local serve --livereload

# Serve with drafts visible
./scripts/jekyll-local serve --drafts

# Build only (output to _site/)
./scripts/jekyll-local build

Visit http://localhost:4000/ to preview your site.

For local development on Ruby 4, use ./scripts/jekyll-local .... It preloads the compatibility shim needed by the older GitHub Pages Jekyll stack in this repo.

Troubleshooting

Bundle install fails:

# Update bundler
gem install bundler

# Clean and reinstall
rm -rf vendor/ .bundle/
bundle install

Port 4000 already in use:

./scripts/jekyll-local serve --port 4001

πŸ“Š Blog Management Best Practices

1. Version Control Workflow

# Create feature branch for new post
git checkout -b post/your-topic-name

# Add and commit
git add _posts/2026-02-02-your-post.md
git commit -m "Add post: Your Topic Name"

# Push and create PR for review
git push origin post/your-topic-name

2. Commit Message Convention

3. File Organization

4. Writing Tips

5. Content Guidelines

βœ… Do:

❌ Don’t:

πŸ” SEO and Analytics

Built-in SEO Features

Adding Analytics (Optional)

Edit _config.yml to add:

# Google Analytics
google_analytics: UA-XXXXXXXXX-X

# Or for GA4
google_analytics_4: G-XXXXXXXXXX

# Google Tag Manager (recommended for advanced tracking)
google_tag_manager: GTM-XXXXXXX

Note: Google Tag Manager (GTM) is recommended for more flexible tracking and tag management. With GTM, you can manage multiple tracking tools (Google Analytics, Facebook Pixel, etc.) from a single interface without modifying code.

πŸš€ Deployment

Automatic Deployment

GitHub Pages automatically builds and deploys when you push to the main branch:

  1. Push changes to GitHub
  2. GitHub Actions builds the site
  3. Live in 1-3 minutes at navalerakesh.github.io/navalerakesh

Manual Build Check

# Build locally to check for errors
bundle exec jekyll build

# Check the _site/ folder
ls -la _site/

πŸ“‹ Publishing Checklist

Before publishing a new post:

πŸ”— Useful Commands

# Create new post quickly
touch _posts/$(date +%Y-%m-%d)-your-post-title.md

# Find broken links
bundle exec jekyll build
grep -r "404" _site/

# Count words in post
wc -w _posts/2026-02-02-your-post.md

# List all posts
ls -1 _posts/

# Search posts
grep -r "keyword" _posts/

πŸ“š Resources

πŸ› Common Issues

Posts Not Showing

Images Not Loading

Build Failures


For general site information, see README.md