| cgol | ||
| prisma | ||
| public | ||
| src | ||
| .env.example | ||
| .envrc | ||
| .gitignore | ||
| bun.lock | ||
| eslint.config.js | ||
| flake.lock | ||
| flake.nix | ||
| install.sh | ||
| next.config.js | ||
| package.json | ||
| postcss.config.js | ||
| prettier.config.js | ||
| README.md | ||
| start-database.sh | ||
| tsconfig.json | ||
jetpham.com
Jet Pham's personal website. This website comes with a long story. The domain was originally registered in highschool by my teamate on my robotics team as a joke. The site was originally a filesystem full of memes and random files. Once I was in college, the domain expired and I registered it myself.
The site originally contained a blog. It was made in Next.js plainly with plain colors and no real style. I posted a few blogs about my life but eventually lost motivaiton and didn't like sharing it with other people after having been inspired by so many other cool websites.
I started to become more obsessed with Rust and rewrote my website from being a blog into a static linktree site made in rust via WASM. It was in ASCII style using a modified fork of ratatui and had a fun implementation of Conways Game of Life in the background.
After leaving that website alone, I started to make more web based projects in Next.js. I realized I could properly make this website awesome and still keep the interesting style in the site while making it more performant, responsive, and accessible. This is the state that you see the website in now.
I have some awesome features packed in this site now that represent all the cool things I'm interested in:
- ANSI rendering of my name in CSS!
- Terminal style text, font, and colors just like BBS
- Rust WASM implementation of Conway's Game of Life running in the background
- List of socials and contact info
Let me know if you have any feedback about the site!
Tech Stack
- Next.js 15 with Turbo mode
- Prisma with PostgreSQL
- Tailwind CSS v4
- tRPC
- TypeScript
- React Query
- React 19
- Rust + WebAssembly (for Conway's Game of Life)
- Bun (package manager)
Development
Prerequisites
- Bun
- Docker (or Podman)
- Rust (for building the Conway's Game of Life WASM module)
- wasm-pack (install via
curl https://drager.github.io/wasm-pack/installer/init.sh -sSf | shor use the install script)
Getting Started
-
Clone the repository
-
Build the Rust WASM module:
bun run build:wasmOr use the install script which will also install wasm-pack if needed:
./install.sh -
Install dependencies:
bun install -
Set up environment variables:
cp .env.example .env.local # Edit .env.local with your configurationAdjust the database URL as needed for your setup.
-
Start the database:
./start-database.shThis script will start a PostgreSQL database in a Docker or Podman container. Make sure Docker or Podman is installed and running.
-
Set up the database schema:
bun run db:push -
Start the development server:
bun run dev
The site will be available at http://localhost:3000.
Project Structure
src/ - Next.js app router pages
cgol/ - Rust WASM module for Conway's Game of Life