The overby.me website, in Rust and Dioxus with WebGL screensavers

Files
README.md

Homepage #

Part of the overby.me monorepo, where this lives in apps/homepage and where all development happens.

It is also published on its own, as tangled.org/overby.me/homepage and github.com/overby-me/homepage. Both are read-only mirrors, rebuilt from the monorepo with josh: a commit made to either is overwritten by the next sync, so please open issues and pull requests on the monorepo.

Personal homepage for overby.me — an interactive 3D graph visualization that maps out online presence, interests, and connections.

Overview #

The landing page renders a 3D force-directed graph where nodes represent profiles, platforms, and life categories (Commerce, Improve, Connect, Immerse, Give). Clicking a node navigates to the corresponding URL; nodes can be dragged, and the camera orbits and zooms.

The graph is a Rust/WebAssembly rewrite of the original React version: it draws directly to WebGL and runs a faithful port of d3-force-3d (the force model react-force-graph-3d uses) for the layout.

Additional routes:

  • /screensaver: Moved to screensaver.overby.me, built from the monorepo's apps/screensaver; old links are forwarded there
  • /cardioid: Moved to cardioid.overby.me, built from the monorepo's apps/cardioid; old links are forwarded there
  • /search — Redirects search queries to Startpage
  • /x — Redirects X/Twitter links through xcancel.com
  • /yt — Embeds YouTube videos in a clean full-screen player

Tech Stack #

  • Dioxus (Rust) compiled to WebAssembly
  • WebGL via web-sys for the custom 3D renderer, with glam for math
  • Self-hosted Space Grotesk for the graph labels
  • Dioxus Router for client-side routing
  • Nix for reproducible dev environments
  • Just as a command runner, driving the Dioxus CLI (dx)

Getting Started #

Prerequisites #

The Nix dev shell provides the full toolchain (dx, a Rust toolchain with the wasm32-unknown-unknown target, wasm-bindgen-cli, and binaryen):

nix develop .#homepage

Development #

just dev

Build #

just build

The static site is written to target/dx/homepage/release/web/public.

Clean #

just clean

License #

Licensed under AGPL-3.0.