Skip to content

Sanjay Khati Chhetri

The bar at the bottom is a scrubber through five eras of interface. Same content, same words — a different paradigm for presenting them. One content layer drives all five; no component knows which era it is in. Keyboard: [ and ].

  1. 1968Teletype — Output is a stream. It prints once, in order, and never comes back.
  2. 1983Terminal — The screen can be addressed. Navigation becomes a language you type.
  3. 1998Rack — Software gets a body. State is something you can see blinking.
  4. 2026Field — Everything is a document. Beautiful, static, and waiting to be read.
  5. 20XXIntent — No layout until asked for. You state what you want; the page assembles.

Written up in this site renders itself five ways.

all 6 projects →

Languages

  • TypeScript
  • JavaScript
  • Kotlin
  • Python
  • Dart
  • Rust (learning)
  • SQL
  • Shell

Web

  • Next.js
  • React
  • Astro
  • Angular
  • Tailwind CSS
  • Express
  • Django
  • Flask

Mobile

  • Jetpack Compose
  • Android
  • Flutter

Data

  • PostgreSQL
  • Drizzle ORM
  • SQLite
  • sql.js
  • Neon

Infra

  • Docker
  • Cloudflare Tunnel
  • Cloudflare R2
  • Cloudflare Pages
  • Vercel
  • Netlify
  • Linux

Ops

  • Auth.js
  • Sentry
  • Umami (self-hosted)
  • Vercel Cron
  • GitHub Actions
Full Stack Software Developer Professional Certificate
IBM ยท 2024
Twelve courses. Capstones are in the public repos, not just on a PDF.
Homelab
Self-issued
Docker, Cloudflare Tunnel, self-hosted analytics. Where the projects go to live once the free tier stops being the point.