NixGround is a local-only image browser that connects to a Turso database for metadata and a Cloudflare R2 bucket for image storage. It is designed to run on a user's computer only (no hosted deployment).
- Local-only desktop usage
- Images stored in Cloudflare R2
- Metadata stored in Turso (names, dates added, tags)
- Direct SQL (no ORM)
- TanStack Start + TanStack Router
- React 19
- Vite
- Tailwind CSS
- shadcn/ui components
- Bun
- Nix flake devshell
Install dependencies and run the dev server:
bun install
bun --bun run devThe app runs at http://localhost:3000.
This app uses a public R2 bucket (no signed URLs). Set these environment variables locally:
R2_ACCOUNT_IDR2_ACCESS_KEY_IDR2_SECRET_ACCESS_KEYR2_BUCKETR2_PUBLIC_BASE_URL(e.g. your bucket’s public base URL)
bun --bun run dev
bun --bun run build
bun --bun run preview
bun --bun run testsrc/routes/file-based routes (TanStack Router)src/components/UI components and examplessrc/styles.cssglobal stylespublic/static assets
Database schema conventions and rules live in docs/data-model.md.
Server logging guidance, level policy, and structured logging conventions live in docs/logging.md.
- Configure verbosity with
LOG_LEVEL(default:info). - Use structured fields (
event,operation, domain fields,error) for stable machine-readable logs. - Follow severity guidance (
warnfor expected handled issues,errorfor unexpected failures).
If you use Nix, you can enter the devshell from flake.nix:
nix developAdd components with the latest shadcn CLI:
bunx --bun shadcn@latest add button