Skip to content

Latest commit

Β 

History

63 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dinesh Kuppan's Blog

A modern, fast static site generator built with Node.js, featuring a curated series on Agentic AI and Neuro-Symbolic AI.

πŸš€ Live at: dineshkuppan.dev

Features

  • ⚑ Ultra-fast builds β€” 29ms average build time (100x faster than Hugo)
  • πŸ“ Centralized content β€” All posts in JavaScript objects (data.js)
  • 🎨 Modern design β€” Blueprint color scheme, Source Serif 4 typography
  • πŸŒ™ Dark mode β€” Theme toggle with localStorage persistence
  • πŸ” Full-text search β€” Client-side search via Cmd+K
  • πŸ“± Responsive β€” Mobile-first CSS Grid layout
  • πŸ“Š Progress tracking β€” Read/unread posts tracked in localStorage
  • πŸ“ˆ 13 posts β€” ~20,450 words across AI engineering series

Project Structure

.
β”œβ”€β”€ site/                    # Custom static site generator
β”‚   β”œβ”€β”€ build.js            # Main build script
β”‚   β”œβ”€β”€ data.js             # Centralized content (13 posts)
β”‚   β”œβ”€β”€ style.css           # Modern CSS (Blueprint design)
β”‚   β”œβ”€β”€ app.js              # Client-side app initialization
β”‚   β”œβ”€β”€ progress.js         # Progress tracking
β”‚   β”œβ”€β”€ cmdpalette.js       # Search functionality
β”‚   β”œβ”€β”€ package.json        # NPM dependencies
β”‚   └── *.html              # Generated HTML (built output)
β”œβ”€β”€ .github/workflows/       # GitHub Actions CI/CD
β”‚   └── deploy.yml          # Automated deployment to GitHub Pages
β”œβ”€β”€ CNAME                   # Domain configuration
└── README.md               # This file

Installation

Requirements

  • Node.js 24+ (or later)
  • npm 10+

Setup

# Clone the repository
git clone https://github.com/DineshKuppan/dinesh.github.io.git
cd dinesh.github.io

# Install dependencies
cd site
npm ci

Building

Production Build

cd site
npm run build

Output: Generates 19+ HTML files in the site/ directory

  • index.html β€” Home page
  • catalog.html β€” Blog catalog
  • about.html β€” About page with portfolio
  • post/YYYY/MM/slug/index.html β€” Individual blog posts
  • sitemap.xml β€” SEO sitemap
  • robots.txt β€” Search engine directives
  • style.css β€” Modern CSS
  • *.js β€” Client-side scripts

Build time: ~29ms

Development Build

cd site
npm run watch

Watches for changes to data.js and build.js and rebuilds automatically.

Running Locally

Option 1: Development Server (Recommended)

cd site
npm run dev
  • Runs the build
  • Starts a local HTTP server on http://localhost:8080
  • Automatically opens your browser
  • Watches for changes

Option 2: Manual Server

# Build first
cd site
npm run build

# Then serve
npm run serve
  • Runs the dev server on http://localhost:8080
  • Serves the built HTML/CSS/JS

Option 3: System HTTP Server

cd site
python3 -m http.server 8080
  • Navigate to http://localhost:8080
  • View the built site

Adding Content

Creating a New Post

Edit site/data.js and add a new post object to the posts array:

{
  id: "unique-id",
  title: "Post Title",
  slug: "post-slug",
  date: "2026-07-22",
  category: "AI",
  tags: ["tag1", "tag2"],
  series: "Series Name",
  description: "One-sentence summary",
  readTime: 8,
  wordCount: 1600,
  body: `<h2>Section Title</h2><p>Content here...</p>`,
  next: "next-post-id",
  prev: "prev-post-id"
}

Then rebuild:

npm run build

The post will automatically appear on the home page, catalog, and search index.

Customization

Colors & Typography

Edit site/style.css:

:root {
  --blueprint: #3553ff;           /* Primary color */
  --bg-primary: #fafaf5;          /* Light background */
  --fg-primary: #0a0a0a;          /* Text color */
  --font-display: 'Source Serif 4', serif;
  --font-mono: 'JetBrains Mono', monospace;
}

Metadata

Update in site/build.js (baseTemplate):

<meta name="og:title" content="Your Site Title">

Domain

Update CNAME:

yourdomain.com

Deployment

GitHub Pages (Automated)

  1. Push to main branch
  2. GitHub Actions automatically:
    • Builds the site (npm run build)
    • Deploys to gh-pages branch
    • GitHub Pages serves the live site

Deployment time: ~2-3 minutes

Live URL: Configured via CNAME file

Manual Deployment

# Build
cd site
npm run build

# Copy to public/
mkdir -p public
cp -r site/index.html site/catalog.html site/404.html site/about.html public/
cp site/style.css site/*.js public/
cp -r site/post public/

# Deploy to GitHub Pages (requires gh CLI)
git add public/
git commit -m "deploy: updated site"
git push origin main

Performance

Metric Value
Build Time 29ms
Pages Generated 19+
CSS Size 12KB
Total Post Words 20,450
TTFb <200ms

Navigation

  • Home (/) β€” Featured posts & series overview
  • Blog (/catalog/) β€” All posts with filtering
  • About (/about/) β€” Portfolio, timeline, contact
  • Search (Cmd+K) β€” Full-text search across posts

Keyboard Shortcuts

Shortcut Action
Cmd+K / Ctrl+K Open search
Esc Close search
β˜€οΈ button Toggle dark mode

Browser Support

  • Chrome/Edge 90+
  • Firefox 88+
  • Safari 14+
  • Mobile browsers (iOS Safari, Chrome Mobile)

License

This blog is personal content. The build system (Node.js, CSS, JavaScript) is open source under MIT. Blog content is Β© Dinesh Kuppan.

Contributing

Have feedback? Found a bug? Open an issue at GitHub Issues.

Contact


Built with ❀️ using Node.js, Markdown, and CSS. Hosted on GitHub Pages.

About

Hello! I'm passionate about learning and exploring various domains in technology and computer science. This GitHub page is a collection of my projects, code snippets, and notes on different topics I've been diving into. It serves as both a portfolio and a learning journal, showcasing my journey as I expand my skills and knowledge.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages