My little corner of the internet β a personal site for projects, writing, and the cool things I stumble upon. Built to be fast, minimal, and personal.
π justfahad.me
- Projects β detailed write-ups with image galleries, source & demo links
- Blog β long-form posts with Giscus-powered comments
- Scratchpad β lightweight, high-frequency link & thought logging. Entries are YAML files committed via a Telegram bot β no CMS, no database
- Custom cursor β 60fps cursor with hover-aware states
- Interactive creatures β tiny SVG doodles (cat, bird, ghost, snail, chaya cup) that react to tap/hover
- Confetti β hidden easter egg on triple-logo tap
- Selection sharing β highlight text to copy/share
- OG prerendering β post-build script injects Open Graph tags for social previews
| Layer | Technology |
|---|---|
| Framework | React 19 + TypeScript |
| Bundler | Vite 6 |
| Routing | React Router v7 |
| Styling | Tailwind CSS v4 + custom CSS |
| Animations | motion/react 12 |
| Content (blogs/projects) | Markdown + gray-matter |
| Content (scratchpad) | YAML + js-yaml |
| Comments | Giscus (GitHub Discussions) |
| Images | Swiper carousel |
| Icons | Tabler Icons |
git clone https://github.com/FahadLive/Personal-Website
cd Personal-Website
pnpm install
pnpm run dev| Command | Description |
|---|---|
pnpm run dev |
Start dev server |
pnpm run build |
Build for production + prerender OG pages |
pnpm run start |
Preview production build |
pnpm run lint |
Run ESLint |
| Section | Source | Format |
|---|---|---|
| Projects | content/projects/*.md |
Markdown + frontmatter |
| Blogs | content/blogs/**/*.md |
Markdown + frontmatter |
| Scratchpad | content/scratchpad/YYYY-MM.yaml |
YAML list |
Scratchpad entries are added via Charlie β a Telegram bot (Cloudflare Worker) that commits YAML directly to this repo.
Warm, handmade aesthetic inspired by wandixu.com and scalzodesign.be. Custom design tokens defined in src/index.css:
| Token | Value |
|---|---|
--color-surface |
#FAF8F3 |
--color-ink |
#111111 |
--color-accent |
#C53B42 |
--color-mustard |
#D9A441 |
Three typefaces: Satoshi (sans), Instrument Serif (serif), Caveat (hand).
src/
βββ pages/ # Route-level components
βββ components/ # Shared UI + interactive creature SVGs
βββ utils/ # Markdown & YAML data loaders
βββ lib/ # Confetti, utilities
βββ index.css # Tailwind v4 theme tokens + global styles
βββ app.tsx # Router & Suspense wrapper
content/ # All written content (source of truth)
βββ blogs/
βββ projects/
βββ scratchpad/
scripts/
βββ prerender.mjs # Post-build OG tag injection
docs/ # Screenshots
