Personal portfolio for Chandra Kishor Jha — Software Engineer at Trade Fabric, full-stack developer, and educator based in Delhi, India.
Live: ckworks.xyz
| Layer | Technology |
|---|---|
| Language | TypeScript (strict, ES2020) |
| Bundler | esbuild |
| Styling | Tailwind CSS (CDN) + custom CSS |
| Fonts | Inter · JetBrains Mono · Newsreader |
| Deploy | Vercel (builds on push) |
No framework. Vanilla TypeScript compiles to a single script.js via esbuild.
src/
├── data/ Typed content — edit here to update the site
│ ├── meta.ts Personal info, social links, stats
│ ├── projects.ts Projects list
│ ├── experience.ts Work & teaching timeline (2018 → present)
│ ├── skills.ts Skill groups
│ ├── principles.ts Philosophy cards
│ └── teaching.ts Teaching subjects
│
├── templates/ HTML generators — one render function per section
│ ├── nav.ts
│ ├── hero.ts
│ ├── about.ts
│ ├── experience.ts
│ ├── skills.ts
│ ├── projects.ts
│ ├── principles.ts
│ ├── teaching.ts
│ └── footer.ts
│
├── app.ts Assembles all templates → injects into #app
├── main.ts Entry: renderApp() → loader → init features
│
├── loader.ts Intro loading screen
├── cursor.ts Custom cursor with canvas trail
├── particles.ts Interactive particle network
├── scroll.ts Scroll progress, reveal animations, nav highlight
├── text.ts Text scramble & typewriter effects
├── interactions.ts Glitch, magnetic hover, 3D tilt, Konami code
├── counter.ts Animated number counters
├── ripple.ts Click ripple effect
└── types.ts All TypeScript interfaces
index.html is a minimal shell — metadata, loader, cursor elements, and <div id="app">.
All page sections are rendered by src/app.ts via typed template functions.
npm install
npm run watch # rebuild on saveOpen index.html directly in the browser — no dev server needed.
npm run build # development build
npm run build:min # minified (used by Vercel)| Task | File |
|---|---|
| New project | src/data/projects.ts |
| New timeline item | src/data/experience.ts |
| New skill | src/data/skills.ts |
| Edit personal info | src/data/meta.ts |
All data files are fully typed — TypeScript will catch shape errors at build time.
Chandra Kishor Jha
ckworkss@gmail.com · LinkedIn · GitHub · X
MIT License — see LICENSE