virex.lol
personal hub and experimental site. material 3 ui, custom android-like shell, built on react 19. research, photography, rants.
what's new?
important changes
- [May 25, 2026] moved to cloudflare - bye vercel!
recent changes
-
[June 9, 2026] Immersive settings, Dash page overhaul, new screenshots, and more!
-
[June 9, 2026] Fix prod bugs and type mismatches (v2026.06.09)
-
[June 6, 2026] expressive typography overhaul V2!
-
[June 5, 2026] expressive typography overhaul!
-
[June 1, 2026] pride month update
-
[May 27, 2026] better haptics, fade switches icon, hide hover indicator on mobile.
-
[May 26, 2026] fix blur on mobile /readme, fix blog text on light mode, and much more.
-
[May 26, 2026] update rss, llm content, and sitemap.
last updated:June 9, 2026 β full changelog
screenshots
desktop
![]() |
![]() |
![]() |
![]() |
| home | blog | settings | readme |
mobile
![]() |
![]() |
![]() |
![]() |
| home | blog | settings | readme |
stack
| layer | tech |
|---|---|
| front | react 19 + vite 6, tailwind 4, motion (liquid physics), lucide |
| back | express on vercel, sqlite via better-sqlite3 |
| assets | webp via sharp, custom noise engine |
features
lens β bento-grid photo gallery. swipe/drag, keyboard nav, high-refresh animations. assets compressed ~200mb β ~40mb.
blog β linux, e-waste, dev rants. read-tracking + rss at
/rss.xml(actually updated now. no really.)
virex shorten β url shortener at
/r/:slug. sqlite-backed, dash-managed, route shadow protection included.
lore β interactive bio with a cool ass animation and more.
tracker β research log. cybersec, dev, design, tooling, whatever i'm poking at.
settings β accent hue, light/dark/system, highHz mode, brutalist mode (0px radii), zen mode, jetbrains mono override, and more.
getting started
# clone + install
git clone https://github.com/hnpf/virex.lol
cd virex.lol
npm install # or pnpm install
# dev
npm run dev # vite + local api server
# prod
npm run build # output to dist/
you'll need node 18+ and a sqlite-compatible env for the api routes. vercel handles this automatically on deploy.
layout
api/
index.ts express handlers (shortener, rss, etc.)
db.ts sqlite read/write logic
public/
photography/ webp archive (compressed via sharp)
robots.txt
rss.xml
sitemap.xml
src/
App.tsx router + top-level page logic
Dash.tsx shortener dashboard
constants.ts data source (bio, links, projects, etc.)
ThemeContext.tsx accent / mode / settings state (context api)
M3Slider.tsx material 3 slider component
M3Switch.tsx material 3 toggle switch
CopyLinkCapsule.tsx clipboard copy ui
NotFound.tsx 404 page
No.tsx no
index.css
main.tsx
todo
- settings: import/export config as json [Added!! has way more than just json (includes link sharing and more!)]
- honey-pot router (unsure)
- rss/atom deep-linking & webmention skeleton
- quick settings android-like drag-down notification shade
- dynamic material 3 source color extraction
- snapping & workspace tiling mode for custom panels
- lazy-loading blurred placeholder matrix for lens
virex.lol Β· github.com/hnpf Β· gpl-3.0







