# Marquee [![GitHub Sponsors](https://img.shields.io/badge/Sponsor-ElianCodes-ea4aaa?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/ElianCodes) [![Discord](https://img.shields.io/discord/1495441903297237043?label=Discord&logo=discord&logoColor=white&color=5865F2)](https://discord.gg/M3wzFpGbzp) > A [Coral](https://getcoral.dev) ecosystem module — built on TanStack Start, Tailwind v4, and the Jellyfin API. --- ## Getting started from this template ### 1. Install dependencies ```bash pnpm install ``` ### 2. Configure environment ```bash cp .env.example .env # Fill in your Jellyfin URL, API key, and user ID ``` ### 3. Start developing ```bash pnpm dev ``` App runs at `http://localhost:3000`. --- ## Stack | Tool | Purpose | |------|---------| | [TanStack Start](https://tanstack.com/start) | Full-stack React framework | | [TanStack Router](https://tanstack.com/router) | Type-safe file-based routing | | [TanStack Query](https://tanstack.com/query) | Server state management | | [Tailwind v4](https://tailwindcss.com) | Styling | | [Biome](https://biomejs.dev) | Linting & formatting | | [@get-coral/jellyfin](https://github.com/Get-Coral/jellyfin) | Jellyfin API client | | [Vitest](https://vitest.dev) | Testing | --- ## Scripts ```bash pnpm dev # Start dev server on :3000 pnpm build # Production build pnpm start # Run production server pnpm typecheck # TypeScript check pnpm check # Biome lint + format check pnpm lint # Biome lint with auto-fix pnpm test # Run tests ``` --- ## Docker ```bash # Pull the published image docker pull getcoral/marquee:latest # Or build it yourself docker build -t marquee . # Run docker run -p 3000:3000 \ -e JELLYFIN_URL=http://your-nas:8096 \ -e JELLYFIN_API_KEY=your-key \ -e JELLYFIN_USER_ID=your-user-id \ getcoral/marquee:latest ``` Published automatically to [`getcoral/marquee`](https://hub.docker.com/r/getcoral/marquee) on Docker Hub on every release via GitHub Actions. --- ## CI / CD | Workflow | Trigger | What it does | |----------|---------|-------------| | `ci.yml` | Every PR + push to main | Typecheck, lint, test, build, Docker build check | | `docker-publish.yml` | Push to main + version tags | Publishes to GHCR | | `release-please.yml` | Push to main | Opens release PR, publishes Docker on merge | Releases are fully automated via [Release Please](https://github.com/googleapis/release-please). Use conventional commits: | Commit prefix | Version bump | |--------------|-------------| | `feat:` | Minor | | `fix:` | Patch | | `feat!:` / `fix!:` | Major | | `chore:`, `docs:` | No bump | --- ## Part of Coral This module is part of the [Coral](https://getcoral.dev) ecosystem. See the [contributing guide](https://github.com/Get-Coral/.github/blob/main/CONTRIBUTING.md) before opening PRs.