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
- [x] 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







