Jet Pham's Personal Website
https://jetpham.com
| api | ||
| public | ||
| secrets | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| check_cleanup.txt | ||
| eslint.config.js | ||
| flake.lock | ||
| flake.nix | ||
| index.html | ||
| module.nix | ||
| package-lock.json | ||
| package.json | ||
| prettier.config.js | ||
| README.md | ||
| secrets.nix | ||
| tor.har | ||
| tsconfig.json | ||
| vite-plugin-ansi.ts | ||
| vite.config.ts | ||
jetpham.com
Personal site for Jet Pham.
The site is a small Vite app with a terminal-style UI, ANSI-rendered text, and a WebGL2 Conway's Game of Life background.
Features
- ASCII/ANSI-inspired visual style with the IBM VGA font
- Conway's Game of Life running in the background via WebGL2
- Q+A page backed by the site API
- Single-file oriented frontend build with Vite
- Fullscreen GPU blur/composite for the frosted panel effect
Stack
- Vite
- TypeScript
- Tailwind CSS v4
- WebGL2
- npm
Development
Prerequisites
- Node.js + npm
Install
npm install
Start the dev server
npm run dev
Check the app
npm run check
Build for production
npm run build
Structure
src/ frontend app
Notes
- The homepage and Q+A page are the intended public pages.
- The background renderer targets WebGL2 and falls back to the site shell background if WebGL2 is unavailable.