Skip to content
View ninadpathak's full-sized avatar

Block or report ninadpathak

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ninadpathak/README.md

ninadpathak.com

Personal portfolio and blog. Built with a custom Python static site generator — no frameworks, no CMS, ~4 dependencies.

Stack

  • Generator: build.py — single Python script
  • Templates: Jinja2
  • Markdown: python-markdown + pygments for syntax highlighting
  • CSS: Vanilla, no build step
  • JS: Vanilla, no frameworks
  • Hosting: Cloudflare Pages

Setup

pip install -r requirements.txt
python3 build.py

Output goes to output/. That's the folder to deploy.

To preview locally:

python3 build.py --serve
# → http://localhost:8000

Writing blog posts

Write in Obsidian (or any editor). Add frontmatter:

---
title: "Your Post Title"
date: 2026-03-08
description: "One sentence summary."
tags: [ai, devtools]
status: published
---

Post content here...

Set obsidian_path in config.toml to your Obsidian folder. Posts with status: published are included on the next build.

If obsidian_path is empty, posts are read from content/posts/.

Project structure

build.py              # The generator
config.toml           # Site config + Obsidian path
requirements.txt

templates/            # Jinja2 templates
  base.html
  index.html
  blog_list.html
  post.html
  work.html
  work_single.html
  portfolio.html
  about.html
  contact.html

static/
  css/main.css
  js/main.js

content/
  about.md
  portfolio.yaml
  work/              # Case study markdown files
  posts/             # Blog posts (fallback if no Obsidian path)

output/              # Generated site (gitignored)

Deploying to Cloudflare Pages

Set the build command to python3 build.py and the output directory to output.

Or push manually:

python3 build.py
# deploy output/ to Cloudflare

Pinned Loading

  1. Python-Projects Python-Projects Public

    Some basic python projects

    Python

  2. Data-Mapping Data-Mapping Public

    Simple code examples which demonstrate matplotlib and other libraries (which I would come across) for visualizing data

    Python

  3. Machine_Learning_Beginner Machine_Learning_Beginner Public

    Just some random machine learning code to get a feel of how things work

    Python

  4. Bulk-Organizer Bulk-Organizer Public

    Organize files where filenames contain the date in yyyymmdd format

    Python

  5. CLI-Address-Book CLI-Address-Book Public

    A basic CLI addressbook program that stores data in a file using pickle in python. You may find it helpful in case you want to see the usage of "pickle"

    Python