A terminal-themed interactive resume and personal blog built with vanilla HTML, CSS, and JS.
Live at: shail.dev
- macOS-style desktop with dock, window chrome, and animated cursor
- Resume rendered as terminal commands (
whoami,cat summary.txt,./print_experience.sh, etc.) - Interactive command input with easter eggs (
sudo hire shail,man shail,diff junior.sh senior.sh, and more) - Blog with markdown rendering — posts listed in a Finder-style window, sorted by date
- Deep links —
/resume,/contact,/blog,/blog/:slugall work as direct URLs - Per-post OG tags for rich link previews on WhatsApp, Slack, iMessage, etc.
- Built-in contact form via mail window
- Single-window focus — opening an app minimizes others
- Mobile responsive with safe area support
- Print-friendly styles
index.html — HTML markup
style.css — all styles
script.js — interactive commands, animations, blog, mail form
worker.js — Cloudflare Worker for OG tag injection on blog posts
wrangler.jsonc — Cloudflare Workers config
blog/ — markdown blog posts
assets/ — favicon, app icons, images, and blog images
- Add a
.mdfile toblog/ - Register it in the
blogPostsarray inscript.js:{ file: 'my-post.md', title: 'My Post', date: 'YYYY-MM-DD' }
- Register it in the
blogPostsmap inworker.js:'my-post': { title: 'My Post', date: 'YYYY-MM-DD' }
mise exec node@20 -- wrangler pages dev . --port 8080Or without Wrangler (deep links won't work):
python3 -m http.server 8080Pushes to master auto-deploy via Cloudflare Workers CI. Feature branches get preview URLs automatically.