Tech Stack

Overview

Distats Panel is built on a modern, minimal stack that prioritizes type safety, developer experience, and local-first operation.

Core technologies

TechnologyVersionPurpose
Next.js16Full-stack React framework (App Router)
React19UI rendering
TypeScript5Static typing throughout the project
Tailwind CSS4Utility-first styling

Authentication & Security

TechnologyPurpose
Node.js crypto.scryptPassword hashing with random salt
joseJWT creation, signing, and verification
HTTP-only cookiesSecure JWT session storage
Next.js middlewareRoute-level authentication enforcement

Database

TechnologyPurpose
SQLite3Local user database — no cloud service required

The database file is stored at @distats_panel/database.sqlite inside your panel directory. It is initialized automatically on first run.

UI & Animation

TechnologyPurpose
shadcn/uiAccessible UI primitives (Sheet, Pagination, Button, etc.)
Radix UIHeadless component primitives
Framer MotionPage transitions and count-up animations
iconsax-reactIcon set used throughout the dashboard

Discord Integration

Distats Panel does not use a Discord.js bot or WebSocket connection. Instead, it uses the Discord REST API directly:

  • Bot info, avatar, and username — fetched via GET /api/v10/users/@me
  • Gateway latency — fetched via GET /api/v10/gateway
  • Guild (server) list — fetched via GET /api/v10/users/@me/guilds
  • Guild details — fetched via GET /api/v10/guilds/:id?with_counts=true

This keeps the panel lightweight and does not require running a persistent bot process alongside the dashboard.

Because the panel reads from the Discord REST API, your bot token must be valid and the bot must already be in the servers you want to inspect.