Welcome to the source code for Brongan.com, a personal playground for exploring Rust, WebAssembly, and systems programming in the browser.
This project is built using the Leptos full-stack framework and Axum.
A fully functional Chip-8 interpreter written in Rust and running in WebAssembly.
- Cycle-accurate execution: Runs standard ROMs like Pong, Brix, and Tetris.
- Debugger: detailed view of registers, memory, and stack.
- Disassembler: Real-time instruction decoding.
- Keypad: Interactive on-screen keypad with keyboard support.
A high-performance implementation of the Game of Life using WebGL.
- WebGL Rendering: Renders the universe grid directly on the GPU for performance.
- Interactivity: Click to toggle cells, Shift+Click for Pulsars, Ctrl+Click for Gliders.
- Simulation Control: Start, stop, step, and reset the simulation.
A tool to generate Color Blindness tests on the fly.
- Algorithmic Generation: Uses circle packing algorithms to create plates.
- Customizable: Inputs for text and blindness types (Red-Green, Blue-Yellow).
- Mandelbrot Explorer: Fractal visualization.
- Catscii: Image-to-ASCII art converter.
- Analytics: A privacy-first, custom analytics solution tracking country-level traffic.
- Frontend: Leptos (Rust -> WASM)
- Backend: Axum
- Styling: SCSS (compiled via
cargo-leptos) - Database: SQLite / GeoLite2 (for analytics)
- Build Tool:
cargo-leptos/just
- Rust (Nightly toolchain required)
cargo-leptos:cargo install cargo-leptossass:npm install -g sass(or your preferred method)
The easiest way to run the app is using the just command runner, but you can also use cargo-leptos directly.
Using Just:
# Start the development server (auto-reloads)
just develop
# Build for production
just buildUsing Cargo Leptos:
cargo leptos watchThe app will be available at http://localhost:3000.
The application is containerized using Docker and deployed to Fly.io.
# Build container image
just container
# Deploy to Fly.io
just deployThis project is open-source. Feel free to explore the code!