all things une
une.haus is a platform for unicyclists to share tricks, compete in games, organize tournaments, and connect with each other.
core features
- tricks โ browse a comprehensive trick encyclopedia with detail pages showing full trick info, videos, and prerequisites
- games โ three collaborative games: rack it up (post creative sets weekly and reply to others), back it up (match the last trick then set a new one, building evolving chains), and stack it up (nail every trick in the stack then add your own to the end)
- vault โ explore unicycle.tv videos with community metadata curation, rider attribution, and filtering by discipline
- posts โ share stories in posts with tags (freestyle, street, trials, etc.), leave comments, and like content
- tourneys โ create and manage bracket-style tournaments with live tournament features
- social โ find riders around the world on the map, follow other players, and stay connected
- tanstack start โ react 19 ssr framework
- drizzle โ typescript orm for postgresql
- tailwind css v4
- tanstack router + tanstack query
- mux โ video processing
- maplibre โ maps
- bun โ package manager + runtime
une.haus is self-hosted on a homelab server โ bun running natively under systemd, postgres on the same box, exposed via a cloudflare tunnel (no open ports). no platform-as-a-service, no managed database. the repo itself is deploy-agnostic; any host that can run bun + postgres works. see DEPLOY.md for the build/run contract.
bun install
cp .env.example .env
git config core.hooksPath .git-hooks
bun dev
git config core.hooksPath .git-hooksenables apost-checkouthook that symlinks the gitignored.envfiles into any new git worktree (see.git-hooks/post-checkout). worktrees don't inherit gitignored files, so without it integration tests andbun devfail env validation inside a fresh worktree. it's a local git setting, so each clone runs it once.
| command | description |
|---|---|
bun dev |
start dev server |
bun run build |
build for production |
bun start |
run production server |
bun run lint |
lint |
bun run format |
format with oxfmt |
bun run check |
lint with auto-fix and format |
bun run typecheck |
type check |
bun preflight |
lint, format, typecheck, and test |
bun run test:unit |
run unit tests |
bun run test:integration |
run integration tests |
bun run db:migrate |
push database migrations |
bun run db:seed |
wipe, migrate, and seed database |
bun run clean |
find and fix unused code with knip |
- fork the repo
- create a branch (
git checkout -b feature/my-feature) - make your changes
- run checks before committing
bun run preflight- commit and push
- open a pull request