Minecraft server dashboard (Next.js)
Find a file
hurkicorgi a011423017 Pass 3 first slice: mod update action, error boundaries, a11y, palette
- New POST /api/mods/update SSE route: per-file Modrinth lookup → snapshot →
  download latest → swap old jar → restart + verify (if server-side) →
  rebuild modpack, with automatic rollback on any failure.
- ModManager: "Update" button next to each mod with an available update,
  plus "Update all (N)" in the installed list header. Reuses the existing
  install timeline UI (same event shape). SSE reader extracted as
  consumeSSE helper.
- Error boundaries: app/error.tsx (scoped), app/admin/error.tsx (admin
  subtree retry), app/not-found.tsx, app/global-error.tsx (hard-fail
  fallback with inline styles, no app shell dependency).
- A11y sweep: aria-pressed + aria-label on LogViewer level chips and
  ModManager side filter; aria-label on admin TabsList; skip-to-content
  link in Navbar targeting <main id="main"> on public + admin pages;
  role/aria-live on install/update timeline; global Esc in ModManager
  clears open confirm prompts and exits search/review wizard steps.
- Command palette (cmdk): global Ctrl/⌘+K dialog mounted in Providers.
  Navigate admin tabs, toggle theme, start/stop/restart server, create
  backup, re-check mod updates, jump to any cached mod/player/snapshot/
  backup. Auth-aware — public users see only Home / Log in / Theme.
- AdminTabs listens to hashchange so palette navigation updates the
  active tab live.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 05:30:23 -06:00
app Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -06:00
components Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -06:00
lib Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -06:00
public Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
scripts Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
.gitignore Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
AGENTS.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
bun.lock Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -06:00
CLAUDE.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
components.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
eslint.config.mjs Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
middleware.ts Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
next.config.ts Performance: RCON pooling, route caching, parallel status probe 2026-04-13 00:59:10 -06:00
package.json Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -06:00
postcss.config.mjs Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
README.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
tsconfig.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.