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
- β‘ 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
.
βββ 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
- Node.js 24+ (or later)
- npm 10+
# Clone the repository
git clone https://github.com/DineshKuppan/dinesh.github.io.git
cd dinesh.github.io
# Install dependencies
cd site
npm cicd site
npm run buildOutput: Generates 19+ HTML files in the site/ directory
index.htmlβ Home pagecatalog.htmlβ Blog catalogabout.htmlβ About page with portfoliopost/YYYY/MM/slug/index.htmlβ Individual blog postssitemap.xmlβ SEO sitemaprobots.txtβ Search engine directivesstyle.cssβ Modern CSS*.jsβ Client-side scripts
Build time: ~29ms
cd site
npm run watchWatches for changes to data.js and build.js and rebuilds automatically.
cd site
npm run dev- Runs the build
- Starts a local HTTP server on
http://localhost:8080 - Automatically opens your browser
- Watches for changes
# 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
cd site
python3 -m http.server 8080- Navigate to
http://localhost:8080 - View the built site
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 buildThe post will automatically appear on the home page, catalog, and search index.
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;
}Update in site/build.js (baseTemplate):
<meta name="og:title" content="Your Site Title">Update CNAME:
yourdomain.com
- Push to
mainbranch - GitHub Actions automatically:
- Builds the site (
npm run build) - Deploys to
gh-pagesbranch - GitHub Pages serves the live site
- Builds the site (
Deployment time: ~2-3 minutes
Live URL: Configured via CNAME file
# 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| Metric | Value |
|---|---|
| Build Time | 29ms |
| Pages Generated | 19+ |
| CSS Size | 12KB |
| Total Post Words | 20,450 |
| TTFb | <200ms |
- Home (
/) β Featured posts & series overview - Blog (
/catalog/) β All posts with filtering - About (
/about/) β Portfolio, timeline, contact - Search (Cmd+K) β Full-text search across posts
| Shortcut | Action |
|---|---|
Cmd+K / Ctrl+K |
Open search |
Esc |
Close search |
| βοΈ button | Toggle dark mode |
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers (iOS Safari, Chrome Mobile)
This blog is personal content. The build system (Node.js, CSS, JavaScript) is open source under MIT. Blog content is Β© Dinesh Kuppan.
Have feedback? Found a bug? Open an issue at GitHub Issues.
- π GitHub: @DineshKuppan
- πΌ Website: dineshkuppan.dev
- βοΈ Email: email2dineshkuppan@gmail.com
Built with β€οΈ using Node.js, Markdown, and CSS. Hosted on GitHub Pages.