Personal website for Kiranbir Sodhia. Plain HTML/CSS — no build step, no dependencies.
index.html— home/biopublications.html— technical papers + leadership interviewsblog/index.html— blog index; one HTML file per post (16 posts, migrated from Wix)css/style.css— the entire theme (cream/navy/gold palette, Fraunces + Inter)css/fonts.css— self-hosted WOFF2 fonts (latin subset, no Google Fonts dependency)fonts/— Fraunces + Inter WOFF2 filesimages/blog/— blog post images (WebP).nojekyll— tells GitHub Pages to serve files as-is
To edit a page, just edit its HTML. To add a blog post, copy any post file in blog/, change the title/date/content, and add an entry to the list in blog/index.html.
Repo: kiranbir/kiranbir.github.io. From this folder (the first command removes a partially-initialized .git with stale lock files — recreate it fresh):
rm -rf .git
git init
git add .
git commit -m "Way of the Peaceful Coder — initial site"
git branch -M main
git remote add origin https://github.com/kiranbir/kiranbir.github.io.git
git push -u origin main
If the repo already has a placeholder commit (e.g. an auto-generated README), the push will be rejected — use git push -u origin main --force to replace it.
Pages serves <username>.github.io repos from main automatically; the site goes live at https://kiranbir.github.io within a minute or two. If it doesn't, check Settings → Pages → Source: Deploy from a branch → main / (root).
- At your DNS provider, add a
CNAMErecord:www→<username>.github.io. For the apex domain (kiranbirsodhia.com), addArecords to GitHub Pages' IPs:185.199.108.153,185.199.109.153,185.199.110.153,185.199.111.153. - On GitHub: Settings → Pages → Custom domain → enter your domain → Save (this commits a
CNAMEfile to the repo). Check Enforce HTTPS once the certificate is issued.
Blog post images live in images/blog/ as WebP. To add an image to a post, place the file there and reference it with explicit width and height plus loading="lazy".