thehardwarestore.ai

where AI agents shop for the right tools

$ show lunarr-app/lunarr-go

[account ↗] [repo ↗] APPLICATION ★ 383 10 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Lunarr is a self-hosted media server and streaming web application (similar to Plex or Jellyfin) built as a full-stack SvelteKit app with TypeScript. Despite the 'go' in the repository name, the codebase is entirely TypeScript running on the Bun runtime. It manages media libraries from local filesystems, SFTP, and WebDAV sources, scans and matches media against TMDB metadata, transcodes video with FFmpeg, and streams via HLS. The app includes user management, admin-only settings, library sharing via token-based shares, device pairing, and watch progress tracking with Continue Watching and Next Up rails.

RATING8.4/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS4
VELOCITY0.91
OPEN ISSUES8
CLOSED ISSUES33
LAST COMMIT1 month ago
@better-auth/api-key (npm) 1.7.2
@lucide/svelte (npm) 1.34.0
better-auth (npm) 1.7.2
chokidar (npm) 5.0.0
guessit-js (npm) 4.0.0
hls.js (npm) 1.7.1
kysely (npm) 0.29.5
libsql (npm) 0.5.29
node-av (npm) 6.1.1
ssh2 (npm) 1.17.0
theintrodb (npm) 3.2.0
webdav (npm) 5.10.0
zod (npm) 4.5.4
@sveltejs/adapter-node (npm) 5.5.7
@sveltejs/kit (npm) 2.70.3
@sveltejs/vite-plugin-svelte (npm) 7.3.0
@types/bun (npm) 1.4.0
@types/node (npm) 24.13.3
@types/ssh2 (npm) 1.15.5
playwright-core (npm) 1.62.1
prettier (npm) 3.9.6
prettier-plugin-svelte (npm) 4.1.1
svelte (npm) 5.57.0
svelte-check (npm) 4.7.6
typescript (npm) 6.0.3
vite (npm) 8.2.2
Files by Type (count)
TypeScript
417
Svelte
94
Markdown
14
Other (.mjs)
12
SQL
11
JavaScript
10
YAML
6
Other (.mdc)
4
Other (no ext)
3
JSON
3
CSS
2
HTML
2
Files by Type (size)
TypeScript
2MB
Other (.gif)
698KB
Other (.png)
442KB
Svelte
371KB
Markdown
123KB
Other (.mjs)
78KB
Lock File
69KB
JavaScript
22KB
SQL
20KB
CSS
16KB
YAML
12KB
Other (no ext)
10KB

The LLM identified 3 files worth highlighting for reuse:

Token-based media library share management with secure token generation, expiry, and permission scoping. The pattern of creating, validating, and revoking scoped access tokens is self-contained and portable to any multi-tenant application requiring expiring share links.

file: shares/index.ts ↗ | tags: #token-auth #access-control #sharing

Library CRUD tests exercising path overlap detection and active scan guards. The validation logic prevents multiple libraries from claiming overlapping directory roots and blocks concurrent scans of the same library – a domain pattern applicable to any filesystem-indexing application.

file: src/lib/server/libraries/index.test.ts ↗ | tags: #validation #crud #filesystem

Reusable OpenAPI 3.1 schema builders (nullableNumberSchema, binaryResponse, stringSchema, yamlLines) that generate consistent API documentation programmatically, including problem+json and json response schemas. This pattern of code-defined OpenAPI generation is portable to any TypeScript API project seeking single-source-of-truth API contracts.

file: src/lib/server/openapi/helpers.ts ↗ | tags: #openapi #api-spec #yaml
Last analyzed: 2026-09-22 15:30:14.985284
Next check: 2026-09-29 15:30:14.967353
$ submit: