SvelteKit UI for skins.sulej.net (frontend for osc_dev/osc-api)
  • Svelte 64.5%
  • TypeScript 32.9%
  • CSS 1.7%
  • JavaScript 0.3%
  • Shell 0.3%
  • Other 0.3%
Find a file
oscbot e60a23f5dd
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
PR Check (osc-skins-ui) / type-check + build (pull_request) Successful in 28s
Build and Push osc-skins-ui / Release & build osc-skins-ui (push) Successful in 46s
deps: update dependency svelte to v5.56.5
2026-07-17 13:01:12 +00:00
.forgejo/workflows deps: update actions/checkout action to v7 2026-07-07 17:20:00 +02:00
scripts build: vendor branch-matched openapi.json and regenerate the typed client 2026-06-08 18:58:30 +02:00
src feat(profile): account unavailable chip 2026-07-08 17:35:50 +02:00
static chore: drop the unused logo-full.png asset 2026-07-07 17:25:04 +02:00
.dockerignore build(frontend): switch to pnpm, Node 24 LTS, pin TS to 5.x 2026-06-03 23:00:13 +02:00
.gitignore build: vendor branch-matched openapi.json and regenerate the typed client 2026-06-08 18:58:30 +02:00
.npmrc build(frontend): disable npm package-lock (pnpm repo) 2026-06-03 23:01:04 +02:00
.releaserc.cjs ci: skip changelog on beta prereleases via per-branch release config 2026-06-08 22:09:54 +02:00
CHANGELOG.md chore(release): 3.1.0 [skip ci] 2026-07-08 15:36:12 +00:00
Dockerfile build(frontend): switch to pnpm, Node 24 LTS, pin TS to 5.x 2026-06-03 23:00:13 +02:00
LICENSE chore: add AGPL-3.0 license 2026-05-19 11:52:51 +02:00
openapi.json chore: sync api types from osc-api@main 2026-07-08 18:17:44 +00:00
package.json deps: update pnpm to v11.10.0 2026-07-12 11:49:31 +02:00
pnpm-lock.yaml deps: update dependency svelte to v5.56.5 2026-07-17 13:01:12 +00:00
README.md docs(readme): pnpm + Node 24 local dev setup 2026-06-03 23:06:12 +02:00
renovate.json ci(renovate): use fast-forward automerge (repos disallow rebase-merge) 2026-07-03 16:20:27 +02:00
svelte.config.js docs: explain why style-src keeps unsafe-inline 2026-07-07 17:25:04 +02:00
tsconfig.json Initial commit: osc-skins-ui (SvelteKit UI for skins.sulej.net) 2026-05-17 14:35:15 +02:00
vite.config.ts Initial commit: osc-skins-ui (SvelteKit UI for skins.sulej.net) 2026-05-17 14:35:15 +02:00

osc-skins-ui

SvelteKit UI for skins.sulej.net. The backend lives at osc_dev/osc-api.

Stack

  • SvelteKit 2.x + Svelte 5 (runes)
  • Tailwind 4 + bits-ui
  • CodeMirror 6 (JSON editor)
  • @lucide/svelte icons
  • @sveltejs/adapter-node (SSR)

Local dev

Requires Node 24 and pnpm (managed by corepack, which ships with Node):

corepack enable      # one-time: activates the pnpm pinned in package.json's "packageManager"
pnpm install
pnpm sync-types      # pull openapi.json from osc-api, regenerate src/lib/api-types.generated.ts
pnpm dev             # vite dev server on :3000

pnpm sync-types fetches https://skins.sulej.net/api/openapi.json (the live backend spec — no git artifact needed) and runs openapi-typescript. Run it whenever the backend's API shape changes — the generated types replace the hand-mirrored SkinEntry / SkinsJson / CIRun etc. that used to drift in src/lib/api.ts. Override the base URL with OSC_API_URL=https://beta.skins.sulej.net pnpm sync-types to sync against the beta backend.

The lockfile is pnpm-lock.yaml; there is no package-lock.json (.npmrc sets package-lock=false).

Deployment

CI on push to main builds + pushes git.sulej.net/osc_dev/osc-skins-ui:latest. The server at /home/arlind/docker/oscbot/ runs docker compose pull && up -d to roll forward.

Traefik routes everything under skins.sulej.net (except /api/*) → osc-web-frontend:3000.

License

Licensed under AGPL-3.0-only. The LICENSE file was added in 2026; all prior versions, releases, and container images (which predate the LICENSE file in the source tree) are also offered under AGPL-3.0 at the discretion of the copyright holder.