About this project
Void Presence Web serves as the central hub for the Void Presence ecosystem, a Discord Rich Presence manager for Windows. Built with Next.js 16 (App Router), React 19, TypeScript, and SCSS, the application provides a polished interface for end users to discover and manage presence customizations without writing code.
Key user-facing features include:
- Config browser with search, filtering, live preview cards, and one-click JSON download or clipboard copy
- Status browser for custom Discord status cycles with previews
- Plugin registry offering one-click installation via deep links (`voidpresence://install-plugin?url=…`)
- Full plugin development documentation at `/plugins/docs`
- Profile pages showing uploaded configs and Author IDs for cloud sync
- Discord and Steam OAuth authentication via next-auth v5
- Public REST API (v0 and v1) for configs, authors, and analytics
- Release schedule page with download statistics charts powered by Recharts
The tech stack emphasizes modern frontend practices: Firebase for config and profile storage, Upstash Redis for session storage, Vercel for hosting and analytics, and a custom SCSS design system without a UI framework. An automated manifest generation script (`npm run build:manifest`) aggregates plugin metadata from the `plugins/` directory into a consumable JSON file.
Security-wise, the platform stores only presence configuration data (button pairs, status/image cycles, titles, descriptions, timestamps, download counters, and author display names) and explicitly avoids storing Discord tokens, passwords, OAuth keys, personal messages, or system data.
Developers can run the project locally with `npm install && npm run dev`. The build pipeline (`npm run build`) regenerates the plugin manifest before the Next.js production build. Environment variables for Firebase, Redis, NextAuth, and Steam are configured via `.env.local`.
Plugin publishing follows a simple PR workflow: add a `.js` file or folder under `plugins/` with required metadata (`author`, `description`, `tags`, `preview.slides`), open a pull request, and upon merge the manifest rebuilds automatically, surfacing the plugin on `/plugins` with an install button.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.