The personal site of Abhi Yadav, live at identitymatters.blog. Built with Astro, hosted free on GitHub Pages. No WordPress, no database — just plain text files.
Everything auto-publishes: any change pushed to the main branch rebuilds and
deploys to identitymatters.blog in ~30 seconds (via GitHub Actions). No manual steps.
| What you want to change | File |
|---|---|
| Name, title, hero text, bio paragraphs, the Feynman quote, email, social links | src/data/site.ts → person, story |
| Career timeline | src/data/site.ts → timeline |
| Expertise cards | src/data/site.ts → expertise |
| Speaking: upcoming banner, video talks, talk list | src/data/site.ts → upcoming, videos, talks |
| The article list (titles, dates, summaries, thumbnails) | src/data/site.ts → articles |
| The full text of one article | src/content/articles/<slug>.html |
| Images | public/images/ |
| Audio | public/audio/ |
| Colors & fonts | src/styles/site.css — the :root[data-direction="warm"][data-theme="light"] block near the top |
Most edits are just changing text inside src/data/site.ts — save, push, done.
Three small pieces (or just send Claude the text and it does all three):
- Thumbnail →
public/images/articles/<slug>.jpgThe<slug>part of the filename becomes the page URL (/writing/<slug>/). - Body →
src/content/articles/<slug>.htmlPlain HTML:<p>…</p>,<h2>…</h2>,<a href>,<img src="/images/…">, etc. - An entry at the top of the
articlesarray insrc/data/site.ts:
{
title: 'My New Article',
date: 'Jun 5, 2026', year: '2026',
cat: 'IAM', kind: 'article',
img: '/images/articles/my-new-article.jpg',
url: '', // an external "original", if any — leave '' for a new piece
source: 'Identity Matters',
excerpt: 'One-paragraph summary shown on the card and the preview popup.',
}Newest entries go first. Notes:
kind: 'audio'+ an<audio>tag in the body → native player (put the mp3 inpublic/audio/).kind: 'pdf'+ an externalurl→ the card links straight to that PDF (no native page).
- Ask Claude (easiest) — describe it; Claude edits and commits.
- GitHub web editor — open the file at
github.com/abhiyadav-code/identitymatters, click the ✏️ pencil, edit, then Commit changes. Auto-deploys. - On your computer —
npm installonce, thennpm run devto preview atlocalhost:4321, edit, andgit push.
npm install # first time only
npm run dev # preview at http://localhost:4321
npm run build # build the static site into ./distServed at the apex domain identitymatters.blog via GitHub Pages (public/CNAME +
the repo's Pages custom-domain setting). The deploy workflow is
.github/workflows/deploy.yml and builds with DEPLOY_TARGET=production.