Skip to content

About

Personal site built like a package page. Real working shell in the hero, the domain is a git remote, curl gets you an ANSI card.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

registry.shwetank.is-a.dev

A portfolio that ships like a package.

shwetank, published as a package. Browse it, curl it, git clone it, or npx it. Every one of those is real.


Next.js TypeScript Tailwind Output npm Arch

shwetank.is-a.dev


Four ways to read it

firefox https://shwetank.is-a.dev        # the website
curl -L shwetank.is-a.dev                # an ANSI business card, right in your terminal
git     clone https://shwetank.is-a.dev  # yes, the domain itself is a git repo
npx     shwetank                         # the real npm package

No tricks behind any of them. proxy.ts sniffs the user agent and hands terminals the card instead of the HTML. scripts/build-repo.mjs bakes a real git repository into public/ at build time, served over git's dumb HTTP. npx shwetank is a package I actually published.

The hero terminal is a real shell

The yay -S shwetank install animation plays, then the prompt becomes a working shell. Press / anywhere to focus it.

help · ls · cd <section> · cat PKGBUILD · neofetch · pacman -Qi shwetank, with tab completion and up/down history. And sudo rm -rf / does exactly what you'd hope, briefly.

Undocumented, on purpose:

try you get
pacman (no args) a playable ASCII Pac-Man in the terminal
sl the steam locomotive, obviously
crt, or the Konami code full CRT mode: scanlines, vignette, power-on flicker
gravity everything on screen falls off the page, then floats back
git log / git blame readme.md a commit history of a person
cat /proc/shwetank/status you'll see
make hire-me resolves one unmet dependency: your email

Built by hand, no libraries

  • Skills graph is a 3D force-directed constellation: orbit camera, perspective projection, all hand-rolled on a 2D canvas. No three.js. A [2d] toggle drops it to a flat, draggable layout.
  • Theme toggle wipes between light and dark as a circular reveal from the click point (View Transitions API), with no flash.
  • Headings decode out of glyph noise the first time they scroll into view.
  • Scroll progress is Pac-Man eating dots toward a ghost. At 100% he catches it.
  • Sound is synthesized live with Web Audio. No audio files ship.

No chart library, no animation library, no gradients. A dark theme, sure, but still just one red.

Everything lives in one file

All content, projects, skills, changelog, links, version, sits in lib/data.ts. Edit there, nowhere else. Bump site.version (CalVer) whenever you ship something. It's part of the joke.

Stack

Next.js 16 (App Router), TypeScript, Tailwind v4, fully static output. Light and dark themes, system preference by default, no flash on reload. Everything works without JavaScript: the shell is server-rendered already "installed", the graph falls back to an accessible table, and the animation respects prefers-reduced-motion.

Run it

npm install
npm run dev      # http://localhost:3000
npm run build    # fully static, deploys to Vercel with zero config

Arch, btw.

About

Personal site built like a package page. Real working shell in the hero, the domain is a git remote, curl gets you an ANSI card.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages